2017-11-24 3 views
-1

A.h私はこのようにenumを定義しています。 A.hはクラスですが、enumはクラス外です。別のファイルから列挙型を使用できません:「タイプに名前を付けません」エラー

enum testEnum { 
item1, 
item2 
}; 
class A 
{ 
... 
}; 

私はいくつかの他のclass Bから同じenumを使用します。

#include "A.h" 
class B{ 
public: 
    void useEnumHere(testEnum item); 
}; 

useEnumHereメソッド宣言の行でエラーが発生しています。

error: 'testEnum' does not name a type 
+1

あなたは列挙型のために ';'を忘れています。そうでなければ、それはOKだと思います。 –

+0

と '#include A.h'は' #include "にする必要がありますA.h" ' –

+0

私は間違ってそれをコピーしました.." A.h "と'; 'はすでにそこにあります – user3566905

答えて

0

ヘッダーファイルを使用しない場合は、前方宣言で十分です。それをcppファイルに含めます。

enum testEnum; 
class B{...}; 
+0

Trueですが、A.hが正しく組み込まれている場合は、これはまったく必要ありません。質問は、「なぜBはAから定義を拾っていないのですか? Askerはこれに答えるための十分な情報を提供していません。 – user4581301

+0

@ user4581301これは完全に真です。しかし、依存関係を減らすためのヒントは害ではありません。 – milbrandt

関連する問題