看板 C_and_CPP 關於我們 聯絡資訊
有一個class animal 一個class monkey (繼承animal) class animal{ public: int idx; void getnum(){retrun idx;}; }; class monkey:public animal{ public: int idx; }; animal a; a.idx = 1; monkey m; m.idx = 2; 如果我希望m.getnum() 得到m.idx的值(就是2) 但又不希望重寫一次getnum在class monkey裡面 有什麼辦法做到嗎? 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 69.142.115.249
dendrobium: monkey::idx 拿掉 11/10 12:48
Dreamer77:但是 現在 idx 的資料結構是不一樣的話呢 11/10 12:50
QQ29:你繼承的目的就是你想要做的事情阿 11/10 12:57
Dreamer77:因為我寫的結果是會有一堆set 和 get 的函式 11/10 12:58
Dreamer77:base 和 inherit class都重複寫一樣的函式感覺很冗XD 11/10 12:59
dendrobium:animal和monkey的idx會同時用到嗎? 11/10 13:14
Dreamer77:不會 11/10 13:25
dendrobium:那這樣的設計就有問題啦... 11/10 13:25
QQ29:你animal 感覺不用產生任何物件吧? monkey的idx用老爸就可拉 11/10 13:26
littleshan:在 monkey 的 ctor 內設定 idx=2 11/10 14:15
einspon:用多型?不過void應該不能回傳吧要改int 11/10 19:56
reon:list 是比較有彈性 和 空間利用 array是效率快但彈性小 11/13 19:49