Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Archive / Курс лекций.doc
Скачиваний:
332
Добавлен:
30.03.2015
Размер:
2.23 Mб
Скачать

Операции выбора компонентов структурированного объекта

К операциям выбора компонентов структурированного объекта относятся:

. Операция прямого выбора – точка

-> Операция косвенного выбора

Об этих операциях будет сказано позже, после определения понятия класса и объекта-представителя класса.

Операции обращения к компонентам класса

К операциям обращения к компонентам класса относятся:

. Операция обращения к компоненте класса по имени объекта или ссылки на объект (левый операнд операции) и указателю на компоненту класса (правый операнд операции). Например, student.year_birthday.

-> Операция обращения к компоненте класса по указателю на объект (левый операнд операции) и указателю на компоненту класса (правый операнд операции). Например, student->year_birthday.

:: Операция доступа к компоненте класса по имени класса и имени компоненты. Например, student::year_birthday.

Операция управления процессом вычисления значений

, Операция запятая. Например, A &= B, A * B, -A.

Группирует выражения слева направо. Разделённые запятыми выражения вычисляются последовательно слева направо, в качестве результата сохраняются тип и значение самого правого выражения.

Эта операция формально также является бинарной операцией, хотя опе­ранды этой операции абсолютно не связаны между собой.

Операция вызова функции

() Операция вызова. Например, sin(x).

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

Операция явного преобразования типа

() Операция преобразования (или приведения) типа

Эта бинарная операция в контексте так называемого постфиксного выражения и в контексте выражения приведения обеспечивает изменение типа значения выражения, представляемого вторым операндом. Информация о типе, к которому преобразуется значение второго операнда, кодируется первым выражением, которое является спецификатором типа. Существуют две формы операции преобразования типа: каноническая, при которой в скобки заключается первый операнд (в выражениях приведения), и функциональная (в постфиксных выражениях), при которой в скобки заключается второй операнд. При функциональной форме операции преобразования типа спецификатор типа представляется одним идентификатором. Для приведения значения к типу unsigned long следует использовать лишь каноническую форму операции преобразования.

Операция индексации

[] Операция индексации. Например, a [4];

Играет роль бинарной операции при индексации элементов массива. Левый операнд представляет собой выражение, значением которого является адрес первого элемента массива. Правый операнд является выражением, определяющим значение индекса, т.е. смещения относительно первого элемента массива.

Операция с тремя операндами

?: Условная операция. Например, (x < 10)? x = 25: x++

Единственная в C++ операция с тремя операндами. Первое выражение-операнд располагается слева от знака ?, второе выражение-операнд располагается между знаками ? и :, третье выражение-операнд - справа от знака :. Выполнение условной операции начинается с вычисления значения самого левого операнда. Если его значение оказывается отличным от 0, то вычисляется значение второго операнда, которое и становится значением выражения. Если значение первого операнда оказывается равным 0, то вычисляется значение третьего операнда, и тогда это значение становится значением выражения.

Операция typeid обеспечивает динамическую идентификацию типов.

Операции и их приоритеты сведены в таблице 5.

Таблица 5