3

私はC++で次の構造体を持っています

struct Jam
{
    void operator()()
    {
        cout << "Test";
    }
};

そして、オーバーロードされた関数を次のように呼び出すことができます。

Jam j;
j();

しかし、同じ構造体へのポインタから関数を呼び出す適切な方法は何だろうと思っていました。たとえば、私が持っている場合:

Jam *j = new Jam;
j->();

関数名が必要だというエラーが表示されます。これは可能ですか?ありがとう!

4

1 に答える 1

10

最も簡単で明確な方法は、ポインターを逆参照することです。

(*j)();

->または、関数の名前 ( operator())で構文を使用できます。

j->operator()();
于 2013-05-03T00:09:56.003 に答える