C メンバー関数へのポインターの呼び出し
C でメンバー関数へのポインターを呼び出すには、特定の構文が必要です。構文の構造は次のとおりです:
(*pointer_to_member_function)(object_pointer, arguments);
例 1: ポインターを使用したメンバー関数の呼び出し
コード スニペットを考えてみましょう:
typedef void (Box::*HitTest) (int x, int y, int w, int h); for (std::list<HitTest>::const_iterator i = hitTestList.begin(); i != hitTestList.end(); ++i) { HitTest h = *i; (*h)(xPos, yPos, width, height); }
ここで、 hitTestList は HitTest という名前のメンバー関数へのポインターのリストです。ポインターを使用して各メンバー関数を呼び出すには、関数が呼び出されるオブジェクトを参照する this ポインターを指定する必要があります。この場合、Box オブジェクト ボックスへのポインターがあり、これを this ポインターとして使用できます。
(box->*h)(xPos, yPos, width, height);
例 2: メンバー関数をリストに追加する
コード スニペットを考えてみましょう:
std::list<HitTest> list; for (std::list<Box*>::const_iterator i = boxList.begin(); i != boxList.end(); ++i) { Box * box = *i; list.push_back(&box->HitTest); }
ここでは、Box クラスのメンバー関数をリストリスト。 &box->HitTest.
を使用してメンバー関数のアドレスを取得していることに注意してください。以上がC でメンバー関数へのポインターを呼び出すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。