다음을 통해 공유


컴파일러 오류 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;