Оператор вызова в C++
Функцию вызывают именем и скобками с аргументами.
Объект ведет себя так же, если в классе объявлен
оператор вызова - метод с именем operator().
Его тело описывает, что происходит при записи
obj(аргумент).
Запишем класс Greeter с полем prefix:
#include <string>
class Greeter {
public:
std::string prefix = "Hello";
std::string operator()(const std::string& name) {
return prefix + ", " + name;
}
};
Сейчас создадим объект и вызовем его со скобками:
int main() {
Greeter hello;
std::string line = hello("Ann");
std::cout << line << "\n";
return 0;
}
Сделайте класс Banner с полем prefix.
Вызов со строкой в скобках должен возвращать подпись
через запятую. Проверьте префикс "Hi" и имя
"Bob", результат выведите.
Создайте Banner с префиксом "Go",
получите строку для "team" вызовом со скобками
и выведите ее.