请考虑以下事项:
class MyClass {
public:
int operator ()(int a, int b);
};
拥有:
MyClass* m = new MyClass();
我想访问operator()
方法,所以我可以:
(*m)(1,2);
但我可以这样做吗?
m->(1,2);
答案 0 :(得分:56)
不是那种语法,但你可以做
m->operator()(1,2);
答案 1 :(得分:3)
如果您不更改m
(它指向的内容),您可以用引用代替(*m)
:
MyClass *m = new MyClass();
MyClass &r = *m;
r(1, 2);
有关详细信息,请参阅this answer。