Поделиться через


Дополнительные сведения о запуске

В языке C++ при создании и уничтожении объекта может выполняться пользовательский код. Поэтому очень важно разобраться в том, какие инициализации выполняются перед входом в функцию main и какие деструкторы вызываются после выхода из main. (Дополнительные сведения о создании и уничтожении объектов см. в разделах Конструкторы и Деструкторы.)

Перед входом в функцию main выполняются следующие инициализации:

  • Инициализация по умолчанию для статических данных со значением 0. Перед выполнения всего остального кода (включая инициализации времени выполнения) все статические данные без явных инициализаторов устанавливаются равными нулю. Статические элементы данных должны быть явно определены.

  • Инициализация глобальных статических объектов в блоке трансляции. Она может выполняться либо перед входом в main, либо перед первым использованием любой функции или объекта в блоке трансляции объекта.

Блок, относящийся только к системам Microsoft

В Microsoft C++ глобальные статические объекты инициализируются перед входом в main.

Завершение блока, относящегося только к системам Microsoft

Глобальные статические объекты которые не зависят друг от друга, однако находятся в разных блоках трансляции, могут вызвать неправильную работу кода.

См. также

Ссылки

Запуск и завершение (C++)