我如何在封闭类中调用封闭类对象的构造函数

时间:2019-11-15 14:47:35

标签: c++ class constructor

请考虑以下代码段。

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。 -不建议继承。我做不到。

1 个答案:

答案 0 :(得分:2)

看来你的意思

DATETIME

尽管这是多余的,因为在任何情况下,都将使用A类的默认构造函数对数据成员a进行默认初始化。