看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《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