私はこのようなクラスの何かを持っている:無効使用
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
はい、簡単なものに応じて、デフォルトの引数を1つ作ることはできません。 2つの別々のコンストラクタを使う方がよいでしょう。 –
@ MarkXLII更新された回答を参照してください。 –