Cтраница 4
![]() |
Определение класса Point ( часть 1 из 5.| Определения функций-элементов класса Point ( часть 2 из 5. [46] |
На рис. 19.6, часть 5 показан тестер для иерархии Point / Circle. Программа начинается с создания экземпляра объекта Point в его собственной области действия внутри main. Объект входит и немедленно выходит из области действия, поэтому сразу вызываются конструктор и деструктор. [47]
Класс определяет свойства и правила конкретного элемента. Объект является результатом создания экземпляра класса. Если для данного класса создано более одного объекте, на каждый из них ссылаются как на экземпляр. [48]
Вы должны откомпилировать все свои классы в DLL. Когда это сделано, для создания экземпляров класса достаточно включить в программу заголовочный файл для классов, содержащихся в DLL. На самом деле требуется выполнить еще пару действий, но они просты и я не буду сейчас забегать вперед. Что может быть проще. [49]
Таким же образом компилятор генерирует дополнительные версии функции для каждого вызова, в котором указывается новый числовой тип данных, например short или float. Генерация новой версии функции называется созданием экземпляра ( instantiating) шаблона функции. [50]
Фактический параметр, соответствующий согласованному формальному массиву-переменной, должен быть переменной-массивом. Значение фактического параметра вычисляется перед созданием экземпляра блока. В результате этого вычисления создается ссылка на переменную, которая становится доступной в течение всего времени существования блока. Фактический параметр не должен быть компонентом переменной, имеющей упакованный тип. [51]
Очевидно, что задание параметров прямоугольника в конструкторе сокращает объем набираемого текста. В дополнение к этому, OWL-версия TRect содержит несколько конструкторов для создания экземпляров класса различными способами. Конструкторы класса CRect в MFC в основном аналогичны конструкторам TRect в OWL. [52]
Таким образом, технические характеристики автомобиля, определяющие его использование, могут быть представлены объектом типа performance, содержащим данные о скорости, габаритах и прочих характеристиках. В UML классы, в которых инкапсулирован дискриминатор и которые используются для создания экземпляров другого класса ( в нашем примере класса Автомобиль) таким образом, что разные экземпляры класса приобретают характеристики разных типов ( например, Спортивный автомобиль и Семейный автомобиль), называются силовыми. В нашем примере класс Назначение ( performance) является силовым для класса Автомобиль. [53]
Обратите внимание: программа с помощью класса CBlock сначала вызывает функции-члены SetCoord и SetColor для установки значений переменных класса, а затем вызывает функцию Draw для рисования блока. Чтобы упростить использование CBlock, необходимо добавить конструктор для установки значений всех переменных при создании экземпляра класса. [54]
Экземпляр функционального блока может потребовать индивидуальной инициализации, отличной от той, которая определена при реализации. Значения, заданные при создании экземпляра, сильнее значений, заданных при реализации блока. [55]
Предыдущий вариант класса CRectangle позволяет инициализировать переменные-члены путем вызова функции-члена SetCoord. Конструктор автоматически вызывается при создании экземпляра класса. Он может инициализировать переменные класса и выполнять любые другие задачи инициализации, необходимые для подготовки объекта к использованию. [56]
![]() |
Распределение памяти для экземпляров функциональных блоков. [57] |
Очевидно, что создавать экземпляры можно только для известных системе блоков. С точки зрения транслятора, создание экземпляра означает выделение необходимой памяти для размещения переменных блока. [58]