从对象指针调用重载运算符 ()

Calling overloaded operator () from object pointer

本文关键字:运算符 重载 调用 对象 指针      更新时间:2023-10-16

请考虑以下事项:

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);

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