3

次の問題は、それほど奇妙に思えませんが、私を夢中にさせます。

class Foo;

// This is the location of the first error code
//        ↓
int (Foo::*)(int) getPointer()
{
    return 0;
}

GCCは私に与えます:

error: expected unqualified-id before ')' token
error: expected initializer before 'getPointer'

PS: -std=c++11 でコンパイルします

4

3 に答える 3

4
int ( Foo::* ( getPointer() ) )();

そうは言っても、使用できることを覚えておいてくださいtypedef。関数ポインターの場合、通常、全体的な読みやすさが向上します。

typedef int ( Foo::* TypeName )();

TypeName getPointer();
于 2013-11-13T19:03:10.727 に答える
0

関数ポインタを使用しようとしているようですが、名前を付けていません:P

これを使って:

int (Foo::*myPointer)(int) getPointer()
{
    return 0;
}
于 2013-11-13T19:04:43.537 に答える