考虑以下:
class MyClass {
public:
int operator ()(int a, int b);
};
当有:
MyClass* m = new MyClass();
我想访问该operator()
方法,所以我可以:
(*m)(1,2);
但我可以这样做吗?
m->(1,2);
考虑以下:
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);
有关更多详细信息,请参阅此答案。