다음을 통해 공유


컴파일러 경고 C4484

'override_function': 기본 ref 클래스 메서드 'base_class_function'과 일치하지만 'virtual', 'new' 또는 'override'로 표시되지 않습니다. 'new'('virtual'이 아닌)가 가정됩니다.

/clr컴파일할 때 컴파일러는 기본 클래스 함수를 암시적으로 재정의하지 않습니다. 즉, 함수가 vtable에 새 슬롯을 가져옵니다. 이 문제를 해결하려면 함수가 재정의인지 여부를 명시적으로 지정합니다.

자세한 내용은 다음을 참조하세요.

C4484는 항상 오류로 발급됩니다. 경고 pragma를 사용하여 C4484를 표시하지 않습니다.

예시

다음 샘플에서는 C4484를 생성합니다.

// C4484.cpp
// compile with: /clr
ref struct A {
   virtual void Test() {}
};

ref struct B : A {
   void Test() {}   // C4484
};

// OK
ref struct C {
   virtual void Test() {}
   virtual void Test2() {}
};

ref struct D : C {
   virtual void Test() new {}
   virtual void Test2() override {}
};