Ответ 1
Не с этим синтаксисом, но вы можете сделать
m->operator()(1,2);
Рассмотрим следующее:
class MyClass {
public:
int operator ()(int a, int b);
};
Если у вас есть:
MyClass* m = new MyClass();
Я хочу получить доступ к методу operator()
, чтобы я мог:
(*m)(1,2);
Но могу ли я сделать это?
m->(1,2);
Не с этим синтаксисом, но вы можете сделать
m->operator()(1,2);
Если вы не измените m
(на что он указывает), вы можете заменить (*m)
ссылкой:
MyClass *m = new MyClass();
MyClass &r = *m;
r(1, 2);
Подробнее см. этот ответ.