如何初始化类对象?

时间:2016-12-06 20:18:21

标签: c++ class initialization

我有这两个特定的类:

myArray.[1..]

当创建一个条形时,我希望将给定的值T和S立即分配给foo对象 - 成员。在标记的行中我试图覆盖这些值,但这些值似乎都没有用,我得到了错误:“foo类型的参数的默认参数类型为'int'”。我怎样才能使它工作?

1 个答案:

答案 0 :(得分:2)

您可以使用:

bar(int x, int y, foo n=foo(0,0)) : ... { ... }

如果您能够使用C ++ 11编译器,您还可以使用:

bar(int x, int y, foo n=foo{0,0}) : ... { ... }

bar(int x, int y, foo n={0,0}) : ... { ... }

而不是:

    foo.set_a(T);
    foo.set_b(S);

你需要使用:

    f.set_a(T);
    f.set_b(S);

因为您需要在成员变量set_a上调用set_bf

更好的选择是使用以下方式初始化f

bar(int x, int y} : T(x), S(y), f(x, y) {}

并将构造函数的主体留空。