需要为派生类指定多少个构造函数

How many constructors need to be specified for derived class?

本文关键字:多少 构造函数 派生      更新时间:2023-10-16

我尝试学习面向对象编程,并有一个基本问题。有一个基类 A,它有三个构造函数,采用 0、1 和 2 个变量。我想从 A 中导出一个类 B,其中我想选择最多传递三个变量。所以我至少需要三个不同的构造函数来表示 B,每个可选变量一个。但是对于基类 A 的每个构造函数,我是否还需要三个不同的 B 构造函数,即总共 9 个构造函数?

由于构造函数不会自动继承,这取决于您。但是,您可以执行以下操作:

class A {
    int a;
    int b;
    int c;
public:
    A(int newA = 0, int newB = 0, int newC = 0): a(newA), b(newB), c(newC){}
};
class B : public A{
    using A::A;
};

这还包括可选参数和构造函数初始值设定项列表,它们应该是不言自明的。希望这能回答你的问题。

干杯