C++ - Forward-Deklaration der Klasse als Gültigkeitsbereich enumeration

Frage ich mich, ob es möglich ist, vorwärts-Deklaration einer enum definiert, die innerhalb einer anderen Klasse Anwendungsbereich. Betrachten Sie zum Beispiel die folgenden:

//A.h
class A
{
public:
    enum class type: unsigned long { /*some stuff*/ }
};

Nun, in einem anderen header würde ich mag, um vorwärts zu deklarieren 'type' enum (angenommen, der Klasse B, hat eine Funktion, die etwas tut, mit A::type)

//B.h
enum A::type; //use of undefined type 'A'

class B
{
public:
    UseTypeEnum(A::Type&);
};

Diese nicht funktionieren:

//B.h
class A;
enum A::type; //still use of undefined type

class B...

Gibt es kein problem, wenn die enum deklariert ist im globalen Gültigkeitsbereich in A. h.

Gibt es eine Möglichkeit, dies zu tun?

  • Enumerationen deklariert werden sollte als statische Mitglieder, sind Sie sicher, dass Sie nicht das Programm zu schreiben mit dem verlassen aus der Enumerationen, die vorwärts-Deklaration?
  • für enum: stackoverflow.com/questions/2238170/...
InformationsquelleAutor Aeluned | 2012-12-12
Schreibe einen Kommentar