Деструктор базового класса объявляют виртуальным, чтобы избежать потери памяти:
Для снижения вероятности ошибки при множественном наследовании целесообразно переопределять функции, определенные в общем виртуальном базовом классе:
Если имя компонента в производном классе совпадает с именем компонента в базовом классе, внутри функций производного класса используется компонент производного класса:
Компонентная функция порожденного класса при вызове метода базового класса должна обязательно содержать оператор "точка" для указания объекта базового класса:
Конструктор производного класса может вызывать конструктор базового класса:
Конструкторы базовых классов при множественном наследовании вызываются в порядке их объявления в классе:
Можно отменить динамическое связывание, используя полное имя функции:
Можно создавать объекты абстрактного класса:
Общие компоненты базового класса доступны производному классу, как если бы они были в нем определены:
Объекты производного класса могут обращаться к частному компоненту базового класса:
При использовании виртуальных методов конкретная реализация метода для вызова будет определяться во время компиляции:
При множественном наследовании может возникнуть ошибка компиляции из-за неоднозначности одноименных компонентов базовых классов:
При совпадении имен компонента класса в производном и базовом классе C++ внутри функций производного класса использует компоненты производного класса:
При создании объектов сначала конструируется порожденный объект:
Производный класс может напрямую обратиться к частным компонентам базового класса, используя оператор "точка":