我有这两个特定的类:
myArray.[1..]
当创建一个条形时,我希望将给定的值T和S立即分配给foo对象 - 成员。在标记的行中我试图覆盖这些值,但这些值似乎都没有用,我得到了错误:“foo类型的参数的默认参数类型为'int'”。我怎样才能使它工作?
答案 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_b
和f
。
更好的选择是使用以下方式初始化f
bar(int x, int y} : T(x), S(y), f(x, y) {}
并将构造函数的主体留空。