2010-07-05 2 views
3

Предположим, у меня есть класс C, и я наследую его и называю этот класс D. У меня всегда вызывать конструктор C «s по умолчанию, как в этом примере:Является ли вызов конструктора базового класса всегда необходимым в C++?

class C { 
    public: 
     C() { ... } 
}; 

class D { 
    public: 
     D() : C() { ... } 
}; 

Обратите внимание, что C имеет только конструктор по умолчанию. Должен ли я позвонить ему из D? Я не мог понять, как это выяснить.

Спасибо, Бода Cydo.

ответ

10

Вам не нужно указывать конструктор базового класса в списке инициализаторов производного типа. Когда он опущен, будет предпринята попытка вызвать базовый конструктор без параметров. Если такой конструктор без параметров не существует, вы получите компиляционную ошибку.

+0

Благодарим за ответ! – bodacydo

Смежные вопросы