Перегрузка оператора ()

Перегрузка оператора () позволяет обработать вызов экземпляра класса как вызов функции. Количество параметров и тип возвращаемого значения в «операторном» методе могут быть произвольными. Допускается присваивание параметрам значений по умолчанию. Внутри метода ко всем членам объекта можно обращаться напрямую или через указатель this. Обратите внимание на то, что перегрузить оператор () с помощью дружественной или обычной функции нельзя. Пример перегрузки оператора () приведен в листинге 14.5.

Листинг 14.5. Перегрузка оператора ()

#include <iostream>

class C {
   int x_;
public:
   C() { x_ = 0; }                 // Конструктор по умолчанию
   explicit C(int x) { x_ = x; }   // Обычный конструктор

   void operator()(int x) { x_ = x; }
   int operator()() const { return x_; }
};

int main() {
   C obj;
   obj(10);
   std::cout << obj() << std::endl;        // 10
   std::cout << (20 + obj()) << std::endl; // 30
   return 0;
}

Учебник C++ (MinGW-W64)
Учебник C++ (MinGW-W64) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов