лас FirstBase, а другий - через SecondBase:
Base {object;
}; FirstBase: public Base {a;
}; SecondBase: public Base {b; Derived: public FirstBase, public SecondBase {dObject;
};
Орієнтовна схема пам'яті для об'єкта класу Derived показана на рис. 3. br/>
Base
FirstBase
Base Derived
SecondBase
Рис. 3. Схема розміщення в пам'яті множинного похідного класу
Щоб дозволити спадкування у таких випадках однієї і тієї ж копії Base, в C + + необхідно включити в команду спадкування ключове слово virtual. У цьому випадку, програму можна переписати таким чином:
Base {object;
}; FirstBase: virtual public Base {a;
}; SecondBase: virtual public Base {b; Derived: virtual public FirstBase, public SecondBase {dObject;
};
Така модифікація програми змінить схему розміщення об'єкта класу Derived, як показано на рис. 4. br/>
int object Base
int a FirstBase
float b SecondBase Derived
long
dObject
Рис. 4. Схема розміщення в пам'яті віртуального множинного похідного класу
Тепер існує всього одна копія класу Base.
Висновок
Успадкування в C + + дозволяє вам будувати/породжувати) новий клас з існуючого класу. Будуючи такий спосіб один клас з іншого, ви зменшуєте обсяг програмування, що, у свою чергу, заощаджує ваш час. C + + дозволяє вам породжувати клас з двох або декількох базових класів. Використання декількох базових класів для породження класу представляє собою множинне спадкування. У висновку можна зробити наступні висновки:
. Спадкування являє собою здатність виробляти новий клас з існуючого базового класу.
. Похідний клас - це новий клас, а базовий клас - існуючий клас.
. Коли ви породжує один клас з іншого (базового класу), похідний клас успадковує елементи базового класу.
. Для породження класу з базового починайте визначення похідного класу ключовим словом class, за яким слідує ім'я класу, двокрапка і ім'я базового класу, наприклад class dalmatian: dog.