Mi chiedo se sia possibile inoltrare una enumerazione definita nell'ambito di un'altra classe. Ad esempio, si consideri il seguente:C++ Inoltro enunciato classe dichiarante
//A.h
class A
{
public:
enum class type: unsigned long { /*some stuff*/ }
};
Ora, in un altro colpo di testa mi piacerebbe trasmettere dichiarare l'enum 'tipo' (supponiamo di classe B di sotto ha una funzione che fa qualcosa con A :: tipo)
//B.h
enum A::type; //use of undefined type 'A'
class B
{
public:
UseTypeEnum(A::Type&);
};
Questo non funziona neanche:
//B.h
class A;
enum A::type; //still use of undefined type
class B...
non c'è nessun problema se l'enum è dichiarata nell'ambito globale in Ah
C'è un modo per farlo?
le enumerazioni devono essere dichiarate come membri statici, sei sicuro di non poter scrivere il programma lasciando fuori la dichiarazione avanzata di enumerazione? –
per 'enum': http://stackoverflow.com/questions/2238170/forward-declaration-of-nested-enum –