2010-01-28 2 views
2

В C++, в каком случае производный класс должен иметь свой собственный конструктор?В этом случае производный класс должен иметь свой собственный конструктор?

Что касается трех случаев: 1) публичное наследство; 2) частное наследство; 3) защищенное наследование;

Большое спасибо.

+1

Домашнее задание? это? – jmucchiello

+0

Подумайте об этом: у меня такое ощущение, что вы задаете здесь неправильный вопрос. Я не думаю, что ваш вопрос с этими тремя случаями - это то, что было назначено вам. Это слишком странно. Ну, на самом деле, это просто неправильно. Так почему бы нам не сказать, что вы хотите узнать? – sbi

ответ

5

Все классы, которые были созданы, всегда должны иметь хотя бы один конструктор. Если вы его не предоставите, компилятор предоставит его вместо этого.

Не существует специальных правил для производных классов.

+0

Что такое случай, когда в базовом классе нет конструктора по умолчанию? – skydoor

+0

Даже тогда, если объект класса должен быть создан, классу нужен подходящий конструктор. Это может быть определяемый пользователем конструктор или один, предоставленный компилятором. (Для nitpickers: последний может быть определяемым компилятором cctor, используемым для инициализации объекта, срезая объект производного класса.) – sbi

0

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

+0

Созданные компилятором конструкторы без проблем вызовут конструкторы базового класса. –

+0

Только в том случае, если базовый класс имеет конструктор по умолчанию. – tobing

0

Конструкторы не наследуются. Каждому классу нужны его собственные конструкторы.

+0

Но даже если не определено, каждый класс будет иметь свой собственный конструктор, поскольку компилятор автоматически сгенерирует конструкторы по умолчанию/копии. –

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