说明:继承构造函数是 C++11 引入的一个特性,它允许派生类(derived class)通过简单的声明来继承一个或多个基类(base class)的构造函数。这意味着派生类可以直接使用基类的构造函数来初始化其继承的基类部分,而不需要在派生类中显式地重写或复制这些构造函数的初始化代码。
这个特性的主要目的是减少代码重复,并提高代码的可读性和可维护性。通过继承构造函数,派生类可以清晰地表明它继承了基类的哪些构造函数,这使得类的继承关系更加明确。以下是一个简单的代码案例,说明了如何使用继承构造函数:
// 基类 Base
class Base {
public:
// 基类的构造函数
Base(int value) {
// 初始化基类的成员变量
}
};
// 派生类 Derived
class Derived : public Base {
public:
// 继承构造函数的声明
using Base::Base; // 继承基类 Base 的构造函数,最关键的一句
// 派生类特有的构造函数
Derived(double value) : Base(static_cast<int>(value)) {
// 初始化派生类的成员变量
}
};
int main() {
// 使用派生类特有的构造函数
Derived d1(10.5); // 调用 Derived 的构造函数,同时初始化 Base 的成员变量
// 使用继承的基类构造函数
Derived d2(42); // 调用继承自 Base 的构造函数
return 0;
}