定义抽象基类的默认构造函数

Define default constructor for abstract base class

本文关键字:默认 构造函数 基类 抽象 定义      更新时间:2023-10-16
class ClassA {
public:
    ClassA() {} // when this function must be provided
    virtual ~ClassA() = 0 {}
};
class ClassB : public ClassA
{
    // ...        
};

我想知道什么时候必须提供抽象基类的默认构造函数

提供默认构造函数与类的抽象性之间没有联系。

提供一个默认构造函数定义,如果你需要初始化的东西。

如果你想禁止默认构造,

提供一个(可能未实现的)非公共声明。

干杯,hth。

如果它确实是一个没有数据成员的抽象基类,那么编译器生成的构造函数在任何情况下都是完全足够的。

派生类将始终调用默认的基类构造函数,除非它们的构造函数在初始化列表中指定了不同的构造函数。