class Derived : inheritance_mode Base1, inheritance_mode Base2 ... {
// 新增成員
};
| 繼承 | 組合 | |
|---|---|---|
| 關係 | 一般與特殊(is-a-kind-of) | 整體與部分(is-a-part-of) |
| 體現 | 派生類擴展基類 | 類包含其他類對象作為成員 |
public:基類 public/protected 成員在派生類保持原存取級別。protected:基類 public/protected 變為派生類 protected。private:基類 public/protected 變為派生類 private。private 成員在派生類中不可直接訪問(但繼承了佔據內存)。此為多態基礎,支援基類指針/引用操作派生對象。
解決菱形繼承重複構造問題:
class Derived : virtual public Base { ... };
virtual 僅影響緊隨其後的基類。public 繼承建立 is-a 關係。