[問題] 關於繼承

看板C_and_CPP (C/C++)作者 (追夢)時間16年前 (2009/11/10 12:37), 編輯推噓5(507)
留言12則, 6人參與, 最新討論串1/2 (看更多)
有一個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

11/10 12:48, , 1F
monkey::idx 拿掉
11/10 12:48, 1F

11/10 12:50, , 2F
但是 現在 idx 的資料結構是不一樣的話呢
11/10 12:50, 2F

11/10 12:57, , 3F
你繼承的目的就是你想要做的事情阿
11/10 12:57, 3F

11/10 12:58, , 4F
因為我寫的結果是會有一堆set 和 get 的函式
11/10 12:58, 4F

11/10 12:59, , 5F
base 和 inherit class都重複寫一樣的函式感覺很冗XD
11/10 12:59, 5F

11/10 13:14, , 6F
animal和monkey的idx會同時用到嗎?
11/10 13:14, 6F

11/10 13:25, , 7F
不會
11/10 13:25, 7F

11/10 13:25, , 8F
那這樣的設計就有問題啦...
11/10 13:25, 8F

11/10 13:26, , 9F
你animal 感覺不用產生任何物件吧? monkey的idx用老爸就可拉
11/10 13:26, 9F

11/10 14:15, , 10F
在 monkey 的 ctor 內設定 idx=2
11/10 14:15, 10F

11/10 19:56, , 11F
用多型?不過void應該不能回傳吧要改int
11/10 19:56, 11F

11/13 19:49, , 12F
list 是比較有彈性 和 空間利用 array是效率快但彈性小
11/13 19:49, 12F
文章代碼(AID): #1A-Eu3tz (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1A-Eu3tz (C_and_CPP)