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

问题描述 投票:32回答:2

考虑以下:

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

当有:

MyClass* m = new MyClass();

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

(*m)(1,2);

但我可以这样做吗?

m->(1,2);
c++
2个回答
56
投票

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

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

3
投票

如果你不改变m(它指向的是什么),你可以用引用替换(*m)

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

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

© www.soinside.com 2019 - 2024. All rights reserved.