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/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht erklären, geschachtelte Typen außerhalb der Klassendefinition.
Wenn Sie brauchen, um Sie nutzen außerhalb der Klasse, müssen Sie entweder die definition der Klasse, oder verschieben Sie Sie in einen namespace.