考虑以下:
class MyClass {
public:
int operator ()(int a, int b);
};
Run Code Online (Sandbox Code Playgroud)
当有:
MyClass* m = new MyClass();
Run Code Online (Sandbox Code Playgroud)
我想访问该operator()方法,所以我可以:
(*m)(1,2);
Run Code Online (Sandbox Code Playgroud)
但我可以这样做吗?
m->(1,2);
Run Code Online (Sandbox Code Playgroud)
Luc*_*ore 58
不是那种语法,但你可以这样做
m->operator()(1,2);
Run Code Online (Sandbox Code Playgroud)
小智 7
如果你不会改变m(它所指向的),你可以(*m)用一个参考来代替:
MyClass *m = new MyClass();
MyClass &r = *m;
r(1, 2);
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请参阅此答案。