我的问题很简单。我们什么时候需要有一个默认构造函数?请参考以下代码:
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),则默认构造函数应由编译器生成。