컴파일러 경고 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 {}
};