首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

C++ 繼承 vs 組合:設計選擇與封裝性對比

     編輯:關於C++

兩種代碼復用方式

// 繼承版:修改 Animal::sound() 簽名 → Cat 及 main 可能需改
// 組合版:修改 Animal::sound() → 僅修改 Cat::sound() 委託體,main 無感

設計原則

優先使用組合,而非繼承(Favor composition over inheritance)。

繼承適用於明確的 is-a 語義且基類穩定的場景;組合適用於大多數代碼復用、行為委託場景。

權衡

  • 組合增加對象數量,間接調用有微小開銷。
  • 系統行為分散在多個對象交互中,需良好接口設計。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved