1
static const Function* Get...();

static メンバ関数から const へのポインタを返せないのはなぜですか? それともできますか?

どこ

typedef void Function(Object * object, HandlerAction action);

呼び出し元が取得した関数ポインターを変更させたくないだけです。

4

1 に答える 1

1

コードで返そうとしているのは、定数の非メンバー関数へのポインターです (ただし、これは有効な構成ではなく、メンバー関数のみを定数にすることができます)。

あなたがしたいことは、次のように書かれた関数への定数ポインタを返すことです:

static Function * const Get...();

constすぐ左の型に常に適用されます。それが最初のものでない限り(あなたの場合staticはタイプがないため、作成できませんconst-その場合、それはすぐ右のタイプに適用されます。これはFunctionあなたの場合です。したがって、関数タイプ自体ではなく、ポインター。

于 2013-11-04T11:06:06.093 に答える