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