class ClassA {
public:
ClassA() {} // when this function must be provided
virtual ~ClassA() = 0 {}
};
class ClassB : public ClassA
{
// ...
};
我想知道何时必须提供抽象基类的默认构造函数。
答案 0 :(得分:2)
提供默认构造函数与类的抽象性之间没有联系。
如果需要初始化,提供默认构造函数定义。
如果要禁止默认构造,请提供(可能未实现的)非公开声明。
欢呼&第h。,答案 1 :(得分:2)
如果它确实是一个没有数据成员的抽象基类,那么编译器生成的构造函数在每种情况下都是完全足够的。
派生类将始终调用默认的基类构造函数,除非它们的构造函数在初始化列表中指定了不同的构造函数。