다음을 통해 공유


경고 C26443

소멸자를 재정의하는 경우 명시적 '재정의' 또는 '가상' 지정자를 사용하면 안 됩니다.

이 경고는 C++ Core 지침에서 C.128의 변경 내용을 반영 하기 위해 Visual Studio 16.8에서 제거되었습니다.

C++ Core Guidelines

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

핵심 지침에 대한 현재 합의는 소멸자를 '명시적으로 재정의' 권장 사항에서 제외하는 것입니다.

주의

  • 규칙은 명시적으로 '가상' 또는 '재정의' 지정자를 사용하는 소멸자를 재정의하는 플래그입니다.
  • 소멸자는 특수한 의미 체계 때문에 'final' 지정자를 계속 사용할 수 있습니다.
  • 경고는 선언이 아닌 함수 정의에 표시됩니다. 정의에 가상 지정자가 없으므로 혼동될 수 있지만 경고는 여전히 적절합니다.

코드 분석 이름: NO_EXPLICIT_DTOR_OVERRIDE

예: 명시적 '재정의'

class Transaction {
public:
    virtual ~Transaction();
    // ...
};

class DistributedTransaction : public Transaction {
public:
    ~DistributedTransaction() override { // C26443
        // ...
    }
};

참고 항목

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