C++ 默认构造函数(Default Constructor)是可以被继承的。当一个类没有定义任何构造函数时,编译器会自动为其提供一个默认构造函数。这个默认构造函数会调用基类的默认构造函数来初始化基类部分。
当派生类继承基类时,如果派生类没有定义任何构造函数,编译器会自动为其提供一个默认构造函数。这个默认构造函数会调用基类的默认构造函数来初始化基类部分。如果派生类定义了其他构造函数,但没有显式调用基类的构造函数,编译器会自动插入一个对基类默认构造函数的调用。
以下是一个简单的例子,展示了继承默认构造函数的情况:
#include <iostream>
class 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