考虑以下:
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);
有关详细信息,请参阅this answer。