[問題] 繼承與聚合

作者: dwight90488 (陳佳佳)   2017-10-20 00:14:17
開發平台(Platform): (Ex: Win10, Linux, ...)
Win7
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
C++
問題(Question):
想請問大大們 繼承與聚合的建構方式
Class:樂器 聚合 Class:樂器規格(InstrumentSpec)
作者: PkmX (阿貓)   2017-10-20 00:21:00
你這樣guitar裡面會有兩個獨立的*Spec成員
作者: z1976 (z1976)   2017-10-20 02:33:00
因為樂器規格是動態型別,所以建議用指標用智慧型指標不用管理delete
作者: legendmtg (CLANNAD)   2017-10-20 12:07:00
為什麼你的GuitarSpec要繼承InstrumentSpec?
作者: dwight90488 (陳佳佳)   2017-10-20 12:08:00
因為很多樂器規格是共有的 所以GuitarSpec我也繼承了
作者: legendmtg (CLANNAD)   2017-10-20 13:58:00
不是有共同的屬性就要繼承啊 是取決於你要怎麼操作兩個改法 1. GuitarSpec不要繼承InstrumentSpec2. 吉他不要有GuitarSpec 直接用樂器的InstrumentSpec指標指向GuitarSpec物件
作者: dwight90488 (陳佳佳)   2017-10-20 20:05:00
謝謝以上各位的回答 Legendmtg大大說的沒錯我仔細想了之後 好像不是必要繼承的 我可以把guitarSpec當成是 吉他規格是跟樂器相比多出來的屬性
作者: y3k (激流を制するは静水)   2017-10-21 16:58:00
借文問一下 這樣的Case在CPP用template寫有跟Java、C#一樣便利嗎@@ 最近剛開始從那兩個進到這裡來...
作者: uranusjr (←這人是超級笨蛋)   2017-10-21 18:25:00
就這個 case 來講用 template 就和 generics 差不多

Links booklink

Contact Us: admin [ a t ] ucptt.com