ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 8) онлайн

Резюме

В этой главе мы увидели, как обычным операциям языка C++ придать новый смысл при использовании их с определенными пользователем типами. Ключевое слово operator используется для перегрузки операций, при этом операция будет выполнять действия, которые определит для нее программист.

Преобразование типов близко к перегрузке операций. Некоторые преобразо- вания происходят между основными типами и типами, определенными пользова- телем. При этом используются два подхода: использование конструктора с одним аргументом при изменении основного типа на определенный пользователем и использование операции преобразования при изменении определенного пользо- вателем типа на основной. Если преобразования происходят между различными определенными пользователем типами, то используются оба этих подхода.

В табл. 8.2 отражены возможные варианты преобразований.

Таблица 8.2. Преобразование типов

 

Процедура в классе назначения

Процедура в исходном классе

Основной в основной

(Встроенные операции преобразования)

Основной к классу

Конструктор

N/A

Класс в основной

N/A

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

Класс в класс

Конструктор

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

Конструктор, объявленный с ключевым словом explicit, не может быть ис- пользован в ситуации неявного преобразования данных. Данные, объявленные с ключевым словом mutable, могут быть изменены, даже если их объект объявлен как const.

На диаграмме классов UML показываются классы и отношения между ни- ми. Объединение представляет собой концептуальное взаимоотношение между объектами реального мира, которые в программе представлены в виде классов. Объединение может иметь направление от одного класса к другому: это называ- ется навигацией.

 

34