1

C++ でポインターにファンクターを使用できない理由について、私は混乱しています。たとえば、クラスとして次のようなものがあるとします。

class Character{


    public:
        Character();
        ~Character();
        void operator()() {cout << "HELLO WORLD" << endl;}//this is the functor operator

};

このようなことをすると、文字を関数として呼び出すことができないというエラーが表示されます...

Character * character = new Character();

    character();

    delete character;

しかし、これはうまくいきます:

Character character;
character();

最初のシナリオでこの演算子にアクセスするにはどうすればよいですか? それは可能ですか?

4

3 に答える 3

3

はい、ポインターを逆参照します。

(*character)();

またはより詳細に:

character->operator()();
于 2012-09-24T23:31:38.393 に答える
1

ポイント先のオブジェクトを使用するには、ポインターを介して間接化を実行する必要があります。

(*character)()
于 2012-09-24T23:31:21.343 に答える
0

それはポインタです。その理由は次のとおりです。

character->();または (*character)()あなたの友達です。

于 2012-09-24T23:32:50.927 に答える