41

考虑以下:

class MyClass {
public:
   int operator ()(int a, int b);
};

当有:

MyClass* m = new MyClass();

我想访问该operator()方法,所以我可以:

(*m)(1,2);

但我可以这样做吗?

m->(1,2);
4

2 回答 2

71

不是用那种语法,但你可以做

 m->operator()(1,2);
于 2012-06-27T07:45:29.053 回答
7

如果您不会更改m(它指向的内容),您可以(*m)通过引用替换:

MyClass *m = new MyClass();
MyClass &r = *m;
r(1, 2);

有关更多详细信息,请参阅此答案

于 2017-09-20T18:20:55.713 回答