我有一个类是这样的:无效使用静态数据成员的
class Foo : public Bar {
double v1;
double v2;
...
public:
explicit Foo (double v1_ = 1.0, double v2_ = v1 > 0.0 ? 2.0 : 0.0)
: v1(v1_), v2(v2_)
{
// do something
}
// do other things
};
,但我得到以下编译错误,像这样:
error: invalid use of non-static data member Foo::v1
note: declared here
double v1;
^
任何建议都赞赏解决这个错误。另外,请指出我代码中的错误,并稍加解释,以便我能更好地理解。提前致谢。
好的,所以我可能应该使用v1_,但是会给出不同的错误,说明v1_没有在此范围内声明。 – Duh
是的,你不能根据其他简单的方法创建一个默认参数。你最好用两个独立的构造函数。 –
@MarkXLII查看最新的答案。 –