Cтраница 2
Заметьте: конструктор округляет число центов, сохраняемое в параметре DolAndCen, до ближайшего целого числа. Кроме того, обратите внимание: конструктор выполняет явное преобразование типов данных, используя разрешенный в языке C альтернативный синтаксис, отличающийся от традиционной записи операции приведения типов. Например, в конструкторе используется выражение long ( DolAndCen), а не традиционная запись ( long) DolAndCen. Безусловно, в C допустимо использовать приведение типов, хотя новый синтаксис может облегчить чтение некоторых выражений. [16]
Операции приведения типа существуют для любого типа данных. Операция приведения типа образуется путем помещения имени типа данных в круглые скобки. Операция приведения типа является одноместной операцией, т.е. операцией, принимающей только один операнд. [17]
В языке С предусмотрена одноместная операция приведения типа ( float), которая создает для своего операнда временную копию с плавающей точкой. Использование операции приведения типа подобным образом называется явным преобразованием. Операции приведения типа существуют для любого типа данных. [18]
На рис. 3.8 показана программа на С и пример ее выполнения. Хотя вводятся только целочисленные оценки, при расчете среднего может получиться дробное число. Типом int такое число представлено быть не может. В программе применяется тип данных float для обработки чисел с десятичной дробью ( называемых числами с плавающей точкой) и специальная операция, называемая операцией приведения типа, для управления расчетом среднего значения. Более подробно эти понятия объясняются после представления программы. [19]
Указатель может быть присвоен другому указателю, если оба указателя имеют один и тот же тип. В противном случае нужно использовать операцию приведения типа указателя в правой части оператора присваивания к типу указателя в левой части. Исключением из этого правила является указатель на void ( т.е. типа void), который является обобщенным указателем и может представлять любой тип указателя. Указатель любого типа может быть присвоен указателю на void, и void - указатель может быть присвоен указателю любого типа. В обоих случаях применение операции приведения типа не требуется. [20]
Используемый для сохранения групп переменных или объектов. Экземпляр класса СОЬАггау хранит множество указателей на объекты класса CObject ( или любого класса, порожденного от CObject) в структуре данных, подобной массиву. CObject - это MFC-класс, от которого прямо или косвенно порождаются практически все остальные классы. Однако вместо использования экземпляра класса общего назначения СОЬАггау программа MiniDraw использует шаблон CTypedPtrArray, спроектированный специально для хранения объектов класса CLine. Это позволяет компилятору выполнять более интенсивный контроль соответствия типов данных, уменьшать число ошибок и сокращать число операций приведения типов при использовании объектов класса. [21]