Considerações adicionais sobre a inicialização

No C++, destruição e construção de objetos podem envolver a execução do código do usuário.Portanto, é importante compreender quais inicializações acontecem antes da entrada para principal e quais destrutores são chamadas depois de sair do principal.(Para obter informações detalhadas sobre a construção e destruição de objetos, consulte construtores e destruidores.)

As seguintes inicializações acontecem antes a entrada para principal:

  • O padrão de inicialização de dados estáticos para zero.Todos os dados estáticos sem inicializadores explícitos são definidos como zero antes da execução de qualquer outro código, incluindo o tempo de execução de inicialização.Membros de dados estáticos ainda devem ser explicitamente definidos.

  • Inicialização de objetos estáticos globais em uma unidade de conversão.Isso pode ocorrer, antes da entrada para principal ou antes da primeira utilização de qualquer função ou um objeto na unidade de conversão do objeto.

Específicos do Microsoft

No C++ da Microsoft, os objetos estáticos globais foram inicializados antes de entrada para principal.

Específicos do Microsoft final

Objetos estáticos globais que são mutuamente interdependentes mas em diferentes unidades de conversão podem causar um comportamento incorreto.

Consulte também

Referência

Inicialização e encerramento (C++)