Важливим компонентом успадковування є знання того, коли для об’єктів похідного типу можуть бути використані методи базового класу. Розглянемо їх на прикладі програми 11.1.
Підстановка конструкторів базового класу
Створимо об’єкт класу CountOn в функції main()
CountOn c1;
Цей рядок означає, що с1 буде створений як об’єкт класу CountOn та ініціалізований нулем. Але клас CountOn не має конструктора, яким же чином виконається ініціалізація? Виявляється, якщо ми не визначили конструктор похідного класу, то буде використовуватися підходящий за сигнатурою конструктор базового класу. В даному випадку компілятор використовує конструктор класу Counter без аргументів.
Підстановка методів базового класу
Об’єкт с1 класу CounOn також може використовувати методи operator++() та get_count() з базового класу:
++c1;
cout <<"\nc1="<<c1.get_count();
Компілятор, не знайшовши цих методів в класі, об’єктом якого є с1, використовує методи базового класу.