Cтраница 3
Тип данных и макросы, определяемые в заголовочном файле stdarg. h. [31] |
Функция average использует все определения и макросы файла stdarg. В функции average объект ар типа va list используется макросами va start, va arg и va end для обработки списка параметров переменной длины. Функция начинает обработку с вызова va start для инициализации объекта ар, используемого далее макросами va arg и va end. Затем, функция average последовательно прибавляет к значению переменной total значения параметров из списка параметров переменной длины. [32]
Пример атрибутов объекта. [33] |
С графическим объектом могут быть связаны определенное имя, атрибуты и координаты, указывающие его место на экране. Фрагмент программы, определяющий некоторый объект, можно разделить на две части: в одной части происходит инициализация объекта, в другой - его спецификация. Инициализация состоит в приписывании объекту имени, атрибутов и места на экране; спецификация - в выполнении последовательности команд, генерирующих примитивы. Атрибуты объекта определяют его визуальные свойства и статус ( гл. [34]
Пример атрибутов объекта. [35] |
С графическим объектом могут быть связаны определенное имя, атрибуты и координаты, указывающие его место на экране. Фрагмент программы, определяющий некоторый объект, можно разделить на две части: в одной части происходит инициализация объекта, в другой - его спецификация. Инициализация Состоит в приписывании объекту имени, атрибутов и места на экране; спецификация - в выполнении последовательности команд, генерирующих примитивы. Атрибуты объекта определяют его визуальные свойства и статус ( гл. [36]
Она задает начальные значения объекту класса Array путем копирования существующего объекта класса Array. Такое копирование должно выполняться весьма тщательно, чтобы избежать ловушки, состоящей в том, что оба объекта типа Array указывают на одну и ту же динамически распределенную область памяти; точно такая же проблема возникла бы с побитовым копированием по умолчанию. Конструкторы копии вызываются всякий раз, когда возникает необходимость в копировании объекта, например, при вызове по значению, когда объект возвращается из вызванной функции, или при инициализации объекта, который должен быть копией другого объекта того же самого класса. [37]
Все, даже частично, инициализированные переменные автоматически получают атрибут SAVE. При инициализации в операторе описания, объекты должны инициализироваться полностью. Кроме операторов описания, исходные значения могут назначаться оператором DATA. Оператор DATA позволяет выполнять частичную инициализацию объектов. [38]
После создания объектов их элементы могут быть инициализированы с помощью конструкторов. Конструктор представляет собой функцию-элемент класса с тем же именем, что и класс. Программист пишет конструктор, который затем автоматически вызывается всякий раз, когда создается объект этого класса. Элементы данных не могут быть инициализированы в определении класса. Элементы данных либо должны инициализироваться в конструкторе класса, либо их значения могут быть установлены позже, после создания объекта. Конструктор не может ни специфицировать тип возвращаемого значения, ни возвращать какое-либо значение. Конструкторы могут быть перегружены, чтобы предусмотреть различные способы инициализации объектов класса. [39]