Глава 10. Объектно-ориентированное программирование
наковыми; однако использование для них одного и того же оператора допускают
далеко не все языки.
В C++ это явление довели до логического завершения, и теперь многие встро-
енные операторы можно перегрузить для работы с новыми типами данных. Что-
бы перегрузить оператор, программист объявляет новую функцию, имя которой
состоит из ключевого слова operator и знака операции. Например, перегрузим
оператор + для сложения двух объектов класса spatial_vector. Объявление
функции будет выглядеть следующим образом:
s p a t i a l _ v e c t o r operator+ ( s p a t i a l _ v e c t o r a , s p a t i a l _ v e c t o r b )
{
. . . . . . . . . .
}
Нам понадобится предусмотреть в классе spatial_vector геттеры и сеттеры
для всех трёх координат, чтобы внешняя функция могла выполнить покоорди-
натное сложение двух векторов (либо мы могли бы объявить функцию друже-
ственной классу). Также мы предусмотрим в классе конструктор, инициализиру-
ющий координаты заданными значениями, и метод info, выводящий координаты
вектора на экран.
#include
#include |