如何初始化初始化列表中的struct-type?

时间:2010-05-10 14:13:42

标签: c++ struct initialization constructor

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

说:

struct St{int x, y};

class Foo
{
public:
Foo(int a = 0, int b = 0) : /*here initilise st_foo out of a and b*/
{}

private:
const St st_foo;
};

2 个答案:

答案 0 :(得分:3)

您需要为struct St提供一个构造函数,该构造函数需要2 int个参数,并将它们分配给xy。然后在Foo初始化列表中调用它。

请记住:除了默认可见性规则之外,结构与类相同(对于结构,默认为public

答案 1 :(得分:0)

Here是一个答案,如果您想要对结构进行零初始化(对于一般情况,也指出了c ++ 0x的解决方案)。在成员的名字后面加上一对空括号就足够了:

Foo() : st_foo()