C++ 默认构造函数(Default Constructor)是可以被继承的。当一个类没有定义任何构造函数时,编译器会自动为其提供一个默认构造函数。这个默认构造函数会调用基类的默认构造函数来初始化基类部分。
当派生类继承基类时,如果派生类没有定义任何构造函数,编译器会自动为其提供一个默认构造函数。这个默认构造函数会调用基类的默认构造函数来初始化基类部分。如果派生类定义了其他构造函数,但没有显式调用基类的构造函数,编译器会自动插入一个对基类默认构造函数的调用。
以下是一个简单的例子,展示了继承默认构造函数的情况:
#includeclass Base { public: Base() { std::cout << "Base default constructor called" << std::endl; } }; class Derived : public Base { public: // 使用默认构造函数继承 Base 类 Derived() { std::cout << "Derived default constructor called" << std::endl; } }; int main() { Derived d; // 调用 Derived 类的默认构造函数,间接调用 Base 类的默认构造函数 return 0; }
输出结果:
Base default constructor called Derived default constructor called