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

时间:2018-03-11 17:12:02

标签: c++ class inheritance constructor

我尝试学习面向对象编程并有一个基本问题。 有一个基类A有三个构造函数,它们带有0,1和2个变量。 我想从A派生出一个B类,我希望最多可以传递三个变量。 所以我需要至少三个不同的B构造函数,每个可选变量一个。 但是对于基类A的每个构造函数,我还需要三个不同的构造函数,即总共9个构造函数吗?

1 个答案:

答案 0 :(得分:0)

由于构造函数不会自动继承,这取决于您。 但是,您可以这样做:

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;
};

这还包括可选参数和构造函数初始化列表,这应该是非常明显的。 希望这能回答你的问题。

干杯