Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O destruidor de substituição não deve usar especificadores explícitos de "substituição" ou "virtual".
Esse aviso foi removido no Visual Studio 16.8 para refletir as alterações no C.128 nas Diretrizes Principais do C++.
Diretrizes principais do C++
O atual consenso sobre as Orientações Fundamentais consiste em excluir os destruidores da recomendação de «neutralização explícita».
Observações
- A regra sinaliza a substituição de destruidores que usam explicitamente especificadores 'virtuais' ou 'substituir'.
- Os destruidores ainda podem usar o especificador 'final' por causa de sua semântica especial.
- Os avisos aparecem em definições de função, não em declarações. Pode ser confuso, já que as definições não têm especificadores virtuais, mas o aviso ainda é apropriado.
Nome da análise de código: NO_EXPLICIT_DTOR_OVERRIDE
Exemplo: 'substituição' explícita
class Transaction {
public:
virtual ~Transaction();
// ...
};
class DistributedTransaction : public Transaction {
public:
~DistributedTransaction() override { // C26443
// ...
}
};