Здрасьте!
К примеру, А - базовый класс, В - производный.
Почему так:
Конструктор А не получает никаких аргументов -> генерируемый компилятором конструктор по умолчанию для В не требует никаких аргументов.
Конструктор А получает некоторые аргументы -> конструктор по умолчанию для В требует в качестве аргумента const B&
Наследование. Конструкторы производных классов
Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain
-
- Сообщения: 270
- Зарегистрирован: 09 янв 2010, 04:14
- Контактная информация:
А пример кода где, и что выдает компилятор. А то что я смысл слов не пойму...
Код: Выделить всё
class A
{
public:
A(int y){}
};
class B :p ublic A
{
};
int _tmain(int argc, _TCHAR* argv[])
{
A a(6);
B b; //здесь ошибка error C2512: 'B' : no appropriate default constructor available; предлагает вызвать B(const B&)
return 0;
}
Код: Выделить всё
A(){}
-
- Сообщения: 270
- Зарегистрирован: 09 янв 2010, 04:14
- Контактная информация:
А ну тогда все понятно. При наличии конструктора с параметром, компилятор не генерирует конструктор без параметра. Объяви его в явной форме.
A(){}. Или добавь конструктор в класс В с явным вызовом конструктора класса А с параметром.
A(){}. Или добавь конструктор в класс В с явным вызовом конструктора класса А с параметром.