Справочное руководство по C++


Инициализация


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

инициализатор: = expression = { список_инициализаторов } = { список_инициализаторов , } ( список_выражений )

список_инициализаторов : выражение список_инициализаторов , список_инициализаторов { список_инициализаторов }

Все выражения в инициализаторе статической или внешней переменной должны быть константными выражениями, которые описаны в , или выражениями, которые сводятся к адресам ранее описанных переменных, возможно со смещением на константное выражение. Автоматические и регистровые переменные могут инициализироваться любыми выражениями, включающими константы, ранее описанные переменные и функции.

Гарантируется, что неинициализированные статические и внешние переменные получают в качестве начального значения "пустое значение". Когда инициализатор применяется к скаляру (указатель или объект арифметического типа), он состоит из одного выражения, возможно, заключенного в фигурные скобки. Начальное значение объекта находится из выражения; выполняются те же преобразования, что и при присваивании.

Заметьте, что поскольку () не является инициализатором, то "X a();" является не описанием объекта класса X, а описанием функции, не получающей значений и возвращающей X.



Содержание раздела