我有以下代码(头文件):
class InnerClass
{
InnerClass(int var);
}
class BigClass
{
BigClass();
InnerClass member(5);
}
如何将BigClass中成员的参数初始化为5(上面的代码生成错误,正如您可能猜到的那样)?如果我将InnerClass成员(5)行放在代码(不是标题)文件中,那么没问题。
答案 0 :(得分:4)
您可以按in-class brace-or-equal initializer初始化成员变量BigClass::member
(自c ++ 11起):
InnerClass member{5};
class BigClass
{
InnerClass member;
public:
BigClass() : member(5) {}
// or... BigClass(int var) : member(var) {}
}
BTW:我认为InnerClass
的构造函数应该公开。