Aviso do compilador (nível 1) C4269
'identificador': dados automáticos 'const' inicializados com construtor padrão gerado pelo compilador produzem resultados não confiáveis
Uma instância automática const
de uma classe não trivial é inicializada com um construtor padrão gerado pelo compilador.
Exemplo
// C4269.cpp
// compile with: /c /LD /W1
class X {
public:
int m_data;
};
void g() {
const X x1; // C4269
};
Como essa instância da classe é gerada na pilha, o valor inicial de m_data
pode ser qualquer coisa. Além disso, como é uma instância const
, o valor de m_data
nunca poderá ser alterado.