我想在默认的类初始化器列表中初始化一个结构体。例如,如果我有一个像这样的类:
class Foo
{
private:
int x;
int y;
int z;
somestruct p;
public:
Foo(): x(1), y(2), z(3)
{
// other stuff
}
};
所以,我可以明确地用这种方式初始化基本类型——我如何初始化一个结构体,例如somestruct p
参数?如果这样初始化,对p
的设计有什么限制吗?
在下面的代码中,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;
};