Cтраница 1
Список инициализации в определении конструктора помещается непосредственно после списка параметров. Он содержит двоеточие с последующим одним или несколькими инициализаторами полей, отделенными друг от друга запятыми. Инициализатор поля содержит имя переменной с последующим начальным значением в круглых скобках. Например, в приведенном ниже классе конструктор содержит список инициализации, который, в свою очередь, содержит инициализаторы полей для всех переменных класса. [1]
Список инициализации членов класса в данном конструкторе содержит вызов конструктора базового класса CRectangle, которому передаются значения, присваиваемые переменным-членам. Список инициализации может использоваться для инициализации как базового класса, так и переменных членов ( рассматривался в параграфе Инициализация переменных-членов в конструкторах гл. Конструктор класса CBlock содержит вызов функции SetColor, которая устанавливает значение переменной FillColor. [2]
Если список инициализации содержит больше инициализирующих значений, чем имеется элементов в массиве, это является ошибкой. [3]
Если список инициализации содержит начальных значений больше, чем элементов массива, то это - ошибка. [4]
Структуры можно инициализировать, используя список инициализации, для этого после имени переменной в объявлении структуры ставится знак равенства, за которым следует помещенный в фигурные скобки и разделенный запятыми список инициализаторов. [5]
Обратите внимание, что количество элементов списка инициализации должно соответствовать размерности массива. [6]
Так как конструктор по умолчанию явно не инициализирует базовый класс ( список инициализации пуст), компилятор автоматически вызывает конструктор по умолчанию базового класса ( CRectangle: : CRectangle ()), присваивающий нулевые значения всем переменным, определенным внутри него. Если базовый класс не имеет конструктора по умолчанию, то будет получено сообщение об ошибке. [7]
Когда объявляется объект класса, между именем объекта и точкой с запятой можно в скобках указать список инициализации элементов. Эти начальные значения передаются в конструктор класса. Скоро мы увидим несколько примеров подобных вызовов конструкторов. [8]
Если количество начальных значений в списке инициализации меньше чем количество элементов массива, оставшиеся элементы автоматически получают в качестве начальных значений последние значения из списка инициализации. [9]
Список инициализации членов класса в данном конструкторе содержит вызов конструктора базового класса CRectangle, которому передаются значения, присваиваемые переменным-членам. Список инициализации может использоваться для инициализации как базового класса, так и переменных членов ( рассматривался в параграфе Инициализация переменных-членов в конструкторах гл. Конструктор класса CBlock содержит вызов функции SetColor, которая устанавливает значение переменной FillColor. [10]
Такие переменные называют объектами-членами или встроенными объектами. Его можно инициализировать, передавая требуемые параметры конструктору, помещенному в список инициализации конструктора класса, содержащего объект-член. [11]
Список инициализации в определении конструктора помещается непосредственно после списка параметров. Он содержит двоеточие с последующим одним или несколькими инициализаторами полей, отделенными друг от друга запятыми. Инициализатор поля содержит имя переменной с последующим начальным значением в круглых скобках. Например, в приведенном ниже классе конструктор содержит список инициализации, который, в свою очередь, содержит инициализаторы полей для всех переменных класса. [12]