我想在默认的类初始化列表中初始化一个结构。例如,如果我有类似这样的类:
class Foo
{
private:
int x;
int y;
int z;
somestruct p;
public:
Foo(): x(1), y(2), z(3)
{
// other stuff
}
};
所以,我可以用这种方式清楚地初始化基本类型 - 如何初始化结构,例如somestruct p
参数?如果以这种方式初始化,p
的设计是否有任何限制?
答案 0 :(得分:4)
在下面的代码中,m_strct
是MyClass
的成员,并由默认构造函数初始化。
struct MyStruct
{
MyStruct(int i): // Constructor
myData(i)
{ }
int myData;
};
class MyClass
{
public:
MyClass() : // default constructor
m_strct(0)
{ }
private:
MyStruct m_strct;
};