c++11 基类构造函数未传参,子类构造传参
时间: 2024-12-02 14:16:11 浏览: 15
c++ 构造函数中调用虚函数的实现方法
在 C++11 中,如果基类有一个默认构造函数(即没有参数),而子类在其构造函数中传递了参数,这种设计被称为“初始化列表派生”(Initialization List Inheritance)。当子类从基类派生并定义了自己的构造函数时,子类可以在构造函数的初始化列表中显式地指定如何创建基类的对象。
例如:
```cpp
class Base {
public:
// 默认构造函数(无参数)
Base() = default;
};
class Derived : public Base {
private:
int someValue; // 子类新增的成员变量
public:
// 子类构造函数,通过初始化列表传递给基类
Derived(int value) : someValue(value), Base() {} // 注意这里先初始化子类的成员再调用基类构造函数
};
```
在这个例子中,`Derived` 的构造函数接收一个 `int` 类型的参数 `value`,然后将这个值赋给了 `someValue` 变量,并通过 `Base()` 调用了基类 `Base` 的默认构造函数。这样做可以确保在子类实例化的同时,基类会按照子类提供的参数进行适当的初始化。
阅读全文