Мой вопрос прост. Когда нам нужно иметь конструктор по умолчанию? См. Следующий код:
class Shape
{
int k;
public:
Shape(int n) : k(n) {}
~Shape() {}
};
class Rect : public Shape
{
int l;
public:
Rect(int n): l(n)
{} //error C2512: 'Shape' : no appropriate default constructor available
~Rect() {}
};
-
Почему компилятор не генерирует конструктор по умолчанию нулевого аргумента неявно в классе Rect?
-
Как мне известно, если класс (Rect) получен из другого класса (Shape), который имеет конструктор по умолчанию (либо неявно сгенерированный, либо явно предоставленный), конструктор по умолчанию должен быть сгенерирован компилятором.