作者conan77420 (小馬非馬)
看板C_and_CPP
標題Re: [問題] 多型的需要???
時間Fri Oct 16 12:36:15 2009
※ 引述《KanoLoa (卡)》之銘言:
: 如果是要拿樂器做比喻的話,
: 我想到的就是管樂隊練習結束之後,
: 最後的保養工作是所有樂器都要做的。
: 那我程式碼怎麼寫比較方便?
: 我希望一個迴圈就可以搞定:
: for(int i = 0 ; i< 樂器數量 : i++)
: 樂器[i]->保養清洗();
: 而不是:
: 喇叭->保養清洗();
: 長號->保養清洗();
: 大鼓->保養清洗();
: 小股->保養清洗();
謝謝各位簡單明瞭的例子解說
因為我還沒實際寫過多型所以觀念還不是很正確
我想問,在這個例子中,
"保養清洗()" 中的實作內容是屬於〝樂器〞中的menber function嗎?
我記得virtual function 是實作多型的方法,不同的物件做相同的動作
也依稀記得好像在寫的時候(於 父類別 中=>) "virtual 保養清洗(int) =0;" ?
將喇叭、長號、大鼓、小鼓放入陣列中,然後讓他們都執行 保養清洗()
那真正要執行的 "保養清洗()"
其中內容是寫在子類別(喇叭、長號、大鼓、小鼓)中,還是父類別(樂器)中?
(如果是放在父類別中不就跟上面讓他等於0衝突?)
(可是各自放在子類別中繼承目的好像就失去了)
我問學校的老師,他也說我將多型跟物件繼承概念搞混,請各位賜教 > <
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.229.134.88
→ conan77420:剛剛回去看flame大的解釋,所以是各自都有保養清洗()囉 10/16 12:38
→ james732:我會建議你實際上寫些很簡單的小範例 能幫助你理解 10/16 12:39
→ fragileness:繼承有"介面的繼承"和"實作的繼承" 10/16 23:47
→ fragileness:多型是讓你在繼承介面的情況下重寫實作 10/16 23:48