Re: [問題] 多型的需要???

看板C_and_CPP (C/C++)作者 (小馬非馬)時間16年前 (2009/10/16 12:36), 編輯推噓0(004)
留言4則, 3人參與, 最新討論串4/5 (看更多)
※ 引述《KanoLoa (卡)》之銘言: : 如果是要拿樂器做比喻的話, : 我想到的就是管樂隊練習結束之後, : 最後的保養工作是所有樂器都要做的。 : 那我程式碼怎麼寫比較方便? : 我希望一個迴圈就可以搞定: : for(int i = 0 ; i< 樂器數量 : i++) : 樂器[i]->保養清洗(); : 而不是: : 喇叭->保養清洗(); : 長號->保養清洗(); : 大鼓->保養清洗(); : 小股->保養清洗(); 謝謝各位簡單明瞭的例子解說 因為我還沒實際寫過多型所以觀念還不是很正確 我想問,在這個例子中, "保養清洗()" 中的實作內容是屬於〝樂器〞中的menber function嗎? 我記得virtual function 是實作多型的方法,不同的物件做相同的動作 也依稀記得好像在寫的時候(於 父類別 中=>) "virtual 保養清洗(int) =0;" ? 將喇叭、長號、大鼓、小鼓放入陣列中,然後讓他們都執行 保養清洗() 那真正要執行的 "保養清洗()" 其中內容是寫在子類別(喇叭、長號、大鼓、小鼓)中,還是父類別(樂器)中? (如果是放在父類別中不就跟上面讓他等於0衝突?) (可是各自放在子類別中繼承目的好像就失去了) 我問學校的老師,他也說我將多型跟物件繼承概念搞混,請各位賜教 > < -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.229.134.88

10/16 12:38, , 1F
剛剛回去看flame大的解釋,所以是各自都有保養清洗()囉
10/16 12:38, 1F

10/16 12:39, , 2F
我會建議你實際上寫些很簡單的小範例 能幫助你理解
10/16 12:39, 2F

10/16 23:47, , 3F
繼承有"介面的繼承"和"實作的繼承"
10/16 23:47, 3F

10/16 23:48, , 4F
多型是讓你在繼承介面的情況下重寫實作
10/16 23:48, 4F
文章代碼(AID): #1Ar_X4S_ (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 4 之 5 篇):
文章代碼(AID): #1Ar_X4S_ (C_and_CPP)