メソッドの引数をクラスに入れるのに問題があります。
class A {
public:
enum Mode {ModeA, ModeB, ModeC};
... // other methods, constructor etc
void setMode(Mode m) {
mMode = m;
}
private:
Mode mMode;
}
int main(int argc, char **argv) {
A a;
a.setMode(A::ModeA | A::ModeC );
return 0;
}
問題は、C++ コンパイラ エラーが発生invalid vconversion from int to A::Mode
することです。理解できません。列挙型の値に連結できないのはなぜですか? コードで値を連結する必要があるため、これを解決するための助けがあれば非常に便利です。