21
別のクラススコープ内で定義されている列挙型を宣言することが可能かどうかと思います。たとえば、次のよう考慮してください。別のヘッダに、私は「タイプ」列挙型を宣言転送したいのですが、今C++フォワード宣言クラススコープ付き列挙
//A.h
class A
{
public:
enum class type: unsigned long { /*some stuff*/ }
};
を(仮定するクラスBは、下記::タイプで何かをする機能を持っている)
//B.h
enum A::type; //use of undefined type 'A'
class B
{
public:
UseTypeEnum(A::Type&);
};
これはどちらか動作しません:列挙型はああでグローバルスコープで宣言されている場合
//B.h
class A;
enum A::type; //still use of undefined type
class B...
何ら問題はありません
これを行う方法はありますか?
列挙型は静的メンバーとして宣言する必要があります。列挙型宣言を省略してプログラムを書くことはできませんか? –
for 'enum':http://stackoverflow.com/questions/2238170/forward-declaration-of-nested-enum –