如何在构造函数列表中初始化结构?
说:
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;
};
答案 0 :(得分:3)
您需要为struct St
提供一个构造函数,该构造函数需要2 int
个参数,并将它们分配给x
和y
。然后在Foo
初始化列表中调用它。
请记住:除了默认可见性规则之外,结构与类相同(对于结构,默认为public
。
答案 1 :(得分:0)
Here是一个答案,如果您想要对结构进行零初始化(对于一般情况,也指出了c ++ 0x的解决方案)。在成员的名字后面加上一对空括号就足够了:
Foo() : st_foo()