从对象指针调用重载的operator()

时间:2012-06-27 07:43:13

标签: c++

请考虑以下事项:

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

拥有:

MyClass* m = new MyClass();

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

(*m)(1,2);

但我可以这样做吗?

m->(1,2);

2 个答案:

答案 0 :(得分:56)

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

 m->operator()(1,2);

答案 1 :(得分:3)

如果您不更改m(它指向的内容),您可以用引用代替(*m)

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

有关详细信息,请参阅this answer