C 設計類選擇繼承或組合

2021-08-26 10:59:24 字數 251 閱讀 9947

在c++程式設計設計類時,用到其他類的屬性或者方法要明白是用組合還是繼承。組合即是has a,該類擁有哪些屬性或者方法;繼承即是is a,該類擁有父類的屬性或者方法。

這裡舉乙個例子,假如有乙個父類汽車,當有轎車、卡車、麵包車等類似的實體時,此時應該選擇繼承,即派生類擁有父類汽車的屬性或者方法;當有發動機、車門、車窗等和汽車相關的屬性時,就應選擇組合。

總之,選擇組合還是繼承,就是要看是否需要新類向上對映。如果是的話,就選擇繼承,如果不需要,就應選擇組合。

繼承與組合的選擇

1 繼承與組合是重用物件 的機制。2 關於父子類的初始化,請參考初始化列表 不能繼承的函式 l建構函式和析構函式 建構函式與析構函式只負責它所在的那一層上的構建與釋放。子類仍然需要自己的建構函式,也需要手動呼叫父類的自定義建構函式。loperator 理由同上。4 new delete是可以被繼承的...

c 繼承,組合

1 什麼是繼承 a繼承b,說明a是b的一種,並且b的所有行為對a都有意義 eg a woman b human a 鴕鳥 b 鳥 不行 因為鳥會飛,但是鴕鳥不會。2.什麼是組合 若在邏輯上a是b的 一部分 a part of 則不允許b從a派生,而是要用a和其它東西組合出b。例如眼 eye 鼻 no...

C 類繼承7 類設計回顧

編譯器會自動生成一些公有的成員函式 特殊成員函式。1 預設建構函式 提供建構函式的動機之一是確保物件總能被正確地初始化。如果類包含指標成員,則必須初始化這些成員。最好提供乙個顯式預設建構函式,將所有的類資料成員都初始化為合理的值。如果定義了某種建構函式,編譯器將不會定義預設建構函式。如果沒有定義任何...