我正在尝试执行以下代码中的操作。我在VS的问题标题中遇到错误。谁能告诉我怎么了?
class A
{
public:
int x;
A(int x = 15)
{
this->x = x;
}
};
class B : public A
{
public:
int a,b,c;
B(int a, int b, int c)
{
this->a = a;
this->b = b;
this->c = c;
}
B(int a, int b, int c, int x) : A(x), /*here is error*/B(a,b,c)
{
}
};
答案 0 :(得分:3)
在B
的4参数构造函数中,您无法构造基类A
,然后委托给另一个构造函数。其他构造函数也会构造A
,可能会造成各种破坏。
您将需要复制B
成员的初始化,将其放入帮助函数中,或将3参数函数委托给4参数函数(为传递给A
的构造函数的第四个参数。
B(int a, int b, int c): B(a, b, c, 15)
{
}