다음을 통해 공유


경고 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
        //...
    }
};

참고 항목

C.128: 가상 함수는 가상, 재정의 또는 최종 중 하나를 정확히 지정해야 합니다.