我尝试学习面向对象编程并有一个基本问题。 有一个基类A有三个构造函数,它们带有0,1和2个变量。 我想从A派生出一个B类,我希望最多可以传递三个变量。 所以我需要至少三个不同的B构造函数,每个可选变量一个。 但是对于基类A的每个构造函数,我还需要三个不同的构造函数,即总共9个构造函数吗?
答案 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;
};
这还包括可选参数和构造函数初始化列表,这应该是非常明显的。 希望这能回答你的问题。
干杯