请考虑以下代码段。
class A{
public:
A(): a(10) {}
int a ;
};
class B{
public:
B() : A::A(){}
A a;
};
编译器警告我
error: type 'A' is not a direct base of 'B'|
我理解该错误,但如何在B的构造函数中调用A的构造函数。任何替代方案。
我想这是一个隐式调用,但我需要一个显式调用。如编译器所说。
warning: 'B::a' should be initialized in the member initialization list [-Weffc++]|
P.S。 -不建议继承。我做不到。
答案 0 :(得分:2)
看来你的意思
DATETIME
尽管这是多余的,因为在任何情况下,都将使用A类的默认构造函数对数据成员a进行默认初始化。