Глава 6. Базовые типы данных и операции ___ 737

Использование операций в качестве функций

В C++ операции трактуются как особого рода функции. Подобно функциям — кому-то из вас может показаться, что мы вступаем в потемки — у так называемых оператор-функций (operator functions) есть имена, аргументы и возвращаемые значения. Типы аргументов и возвращаемых значений в определенных пределах задаются вами.

На время отбросим подробности. Если концепция операций в качестве функций для вас совершенно нова, примите ее на веру. На данном этапе многие аспекты оператор-функций можно уяснить, не вдаваясь в детальное рассмотрение. Синтаксис оператор-функций почти такой же, как у всех остальных функций. В первую очередь оператор-функции отличаются от обычных именами. Для обычной функции и-мя выбирается с таким расчетом, чтобы оно отражало ее действие или назначение. Обозначения же оператор-функций говорят сами за себя: имена оператор-функций формируются из ключевого слова operator и знака соответствующей конкретной операции. Функцию, производящую сложение, можно объявить как

type Sum( type leftOperand, type rightOperand);

Оператор-функция, выполняющая ту же самую операцию сложения, может быть реализована точно таким же образом за тем исключением, что вместо имени sum появятся ключевое слово operator и операция сложения, т. е.

type operator+( type leftOperand, type rightOperand);

Как правило, оператор-функции вызываются неявно, но можно вызывать их и прямо, как вы увидите в главе 16 "Перегрузка операций".

Оператор-функции

Наверняка вы неоднократно слышали об объектно-ориентированной парадигме. Взгляд на операции как на функции не является ее прямым следствием, но он стал неотъемлемой частью видения объектно-ориентированного программирования через призму C++; он придает новому подходу к разработке программ дополнительную выразительность.

Всем хорошо известно, как, опираясь на синтаксические правила, записать обычную традиционную операцию. Взяв в качестве примера операцию двухместного сложения (плюс), получим

а + Ь

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