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

时间:2011-09-28 23:43:09

标签: c++ constructor

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

class Foo
{
private:
    int x;
    int y;
    int z;
    somestruct p;
public:
    Foo(): x(1), y(2), z(3)
    {
        // other stuff
    }
};

所以,我可以用这种方式清楚地初始化基本类型 - 如何初始化结构,例如somestruct p参数?如果以这种方式初始化,p的设计是否有任何限制?

1 个答案:

答案 0 :(得分:4)

在下面的代码中,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;
};