Итак, я пытаюсь определить перечисление в производном классе, где объявление находится в базовом классе. Это выглядит примерно так:
class A {
public:
enum class E;
virtual int foo () = 0;
};
class B : public A {
public:
enum class E { C, D };
int foo () {
E e = E::C;
return 0;
}
};
int main() {
B b;
A *a = &b;
a->foo();
}
Это будет работать (компилятор gcc 4.8, команда компиляции: g++ -std=c++11...), однако мне было интересно, есть ли лучший способ сделать это, чтобы мне не приходилось каждый раз писать E:: Я должен использовать перечисление.
edit: я ошибочно подумал, что это работает, однако на самом деле это не прямое объявление, а два разных класса enum A::E и B::E
enum
вместоenum class
. - person GingerPlusPlus   schedule 15.11.2015enum
? - person GingerPlusPlus   schedule 15.11.2015