W moim projekcie mam wyliczenie zdefiniowane w klasie, które jest używane w tej klasie. Podczas refaktoryzacji to wyliczenie zostało przeniesione do innej klasy. Więc po prostu typedef
ed go w mojej oryginalnej klasy, podobnie jak to:Uzyskiwanie dostępu do wartości wyliczeniowych z innej klasy
class A {
public:
enum E {e1, e2};
};
class B {
public:
typedef A::E E;
};
Teraz zmienne definicje, zwracane wartości, params funkcyjne itp działa doskonale. Tylko wtedy, gdy chcę uzyskać dostęp do wartości enum w mojej drugiej klasie, nadal muszę zakwalifikować je za pomocą nazwy klasy surroundig,
np. E e = A::e1;
Czy istnieje sposób, aby tego uniknąć, czy też muszę go skopiować na każde wystąpienie wartości wyliczeniowych?
Jak uzyskać dostęp do wartości wyliczonych? Nadal muszę napisać 'E :: EnumType e = E :: e1;' –
Musisz napisać to, co moim zdaniem jest niewielką ceną za brak konieczności duplikowania wyliczonych wartości, o ile tworzysz E a znacząca nazwa dla wyliczenia. –