如何在C ++

时间:2016-03-23 10:02:32

标签: c++ constructor initialization

我有以下代码(头文件):

class InnerClass
{
    InnerClass(int var);
}

class BigClass
{
    BigClass();
    InnerClass member(5);
}

如何将BigClass中成员的参数初始化为5(上面的代码生成错误,正如您可能猜到的那样)?如果我将InnerClass成员(5)行放在代码(不是标题)文件中,那么没问题。

1 个答案:

答案 0 :(得分:4)

您可以按in-class brace-or-equal initializer初始化成员变量BigClass::member(自c ++ 11起):

InnerClass member{5};

member initializer list

class BigClass
{
    InnerClass member;
public:
    BigClass() : member(5) {}
    // or... BigClass(int var) : member(var) {}
}

BTW:我认为InnerClass的构造函数应该公开。