경고 C26433
함수는 다음으로 표시되어야 합니다.
override
C++ Core Guidelines
C.128: 가상 함수는 가상, 재정의 또는 최종 중 하나를 정확히 지정해야 합니다.
컴파일러에서 가상 함수가 기본을 재정의한다고 명확하게 명시할 필요는 없습니다. 지정하지 않으면 가상 사양이 override
클래스 계층 구조에서 변경될 경우 유지 관리 중에 미묘한 문제가 발생할 수 있습니다. 또한 가독성을 낮추고 인터페이스의 다형 동작을 덜 분명하게 만듭니다. 함수가 명확하게 표시된 override
경우 컴파일러는 인터페이스의 일관성을 확인하고 런타임에 문제를 발견하기 전에 문제를 발견할 수 있습니다.
주의
이 규칙은 소멸자에게 적용되지 않습니다. 소멸자 고유의 가상성 관련 사항이 있습니다.
규칙은 명시적으로 표시된 final
함수에 플래그를 지정하지 않으며, 이는 그 자체로 특수한 다양한 가상 지정자입니다.
경고는 선언이 아닌 함수 정의에 표시됩니다. 정의에 가상 지정자가 없지만 경고는 여전히 정확하기 때문에 혼동될 수 있습니다.
코드 분석 이름: OVERRIDE_EXPLICITLY
예: 암시적 재정의
class Shape {
public:
virtual void Draw() = 0;
// ...
};
class Ellipse : public Shape {
public:
void Draw() { // C26433
//...
}
};