如何在类构造函数列表中初始化结构



我想在默认的类初始化器列表中初始化一个结构体。例如,如果我有一个像这样的类:

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_strctMyClass的成员,由默认构造函数初始化。

struct MyStruct
{
    MyStruct(int i): // Constructor
        myData(i)
    { }
    int myData;
};
class MyClass
{
public:
    MyClass() :  // default constructor
        m_strct(0)
    { }
private:    
    MyStruct m_strct;
};

最新更新