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 に答える