我有一個類是這樣的:無效使用靜態數據成員的
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查看最新的答案。 –