次の方法で共有


コンパイラ エラー C2989

'class' : クラス型は、非クラス型として既に宣言されています

クラス ジェネリックまたはテンプレートは、非テンプレートまたは非ジェネリック クラスを再定義します。 ヘッダー ファイルの競合を確認します。

次の例では C2989 が生成されます。

// C2989.cpp
// compile with: /c
class C{};

template <class T>
class C{};  // C2989
class C2{};

C2989 は、ジェネリックを使用する場合にも発生することがあります。

// C2989b.cpp
// compile with: /clr /c
ref class GC1;

generic <typename T> ref class GC1;   // C2989
template <typename T> ref class GC2;

generic <typename T> ref class GC2;   // C2989
generic <typename T> ref class GCb;
template <typename T> ref class GC2;
generic <typename T> ref class GCc;