我有一个Foo
类,只有构造函数Foo(int length)
。我还会与成员Foo myFoo = myFoo(100)
共同上课'Bar',我会如何初始化?如果它在Foo构造器中没有长度参数,我只能初始化它。用C++中的参数初始化一个成员变量
在此先感谢
我有一个Foo
类,只有构造函数Foo(int length)
。我还会与成员Foo myFoo = myFoo(100)
共同上课'Bar',我会如何初始化?如果它在Foo构造器中没有长度参数,我只能初始化它。用C++中的参数初始化一个成员变量
在此先感谢
我不知道如果我理解正确的话,但通常成员在构造函数初始化列表初始化:
class Bar
{
public:
Bar();
private:
Foo myFoo;
};
Bar::Bar()
// The following initializes Foo
: Foo(100)
// constructor body
{
}
注意,如果Bar
有几个构造函数,你必须初始化每个myFoo
其中。
C++ 11在成员声明中直接添加初始化,就像这样:
class Bar
{
Foo myFoo = Foo(100);
};
但是你的编译器可能不支持呢,还是只用特殊标志支持。
此问题已经多次出现。您可以使用构造函数初始化列表来做到这一点:
class Bar
{
Bar() : myFoo(100) {}
Foo myFoo;
};
这些初始化列表让你调用构造函数的基类,以及为会员,并初始化它们预期的方式。
Bar::Bar()
: myFoo(100) {
// constructor code
}
请显示代码。 –