Ich frage mich, ob es möglich ist, eine Enum deklarieren, die in einem anderen Klassenbereich definiert ist. Betrachten wir zum Beispiel die folgende:C++ Forward Deklaration Klassenbereichsaufzählung
//A.h
class A
{
public:
enum class type: unsigned long { /*some stuff*/ }
};
nun in einem anderen Header würde Ich mag den ‚Typ‘ Enum weiterleiten erklären (suppose Klasse B unten hat eine Funktion, die etwas mit A :: Art der Fall ist)
//B.h
enum A::type; //use of undefined type 'A'
class B
{
public:
UseTypeEnum(A::Type&);
};
das funktioniert auch nicht:
//B.h
class A;
enum A::type; //still use of undefined type
class B...
kein Problem gibt es, wenn die Enumeration auf globaler Tragweite in Ah erklärt
Gibt es eine Möglichkeit, dies zu tun?
Enumerationen sollten als statische Mitglieder deklariert werden, sind Sie sicher, dass Sie das Programm nicht schreiben können, ohne die Enums-Forward-Deklaration auszulassen? –
für 'enum': http://stackoverflow.com/questions/2238170/forward-declaration-of-nested-enum –