C でのメンバー関数へのポインターの呼び出し
C では、メンバー関数へのポインターは、オブジェクトのメソッドを動的に呼び出す便利な方法を提供します。ただし、その構文は難しい場合があります。
メンバー関数へのポインターを呼び出すための構文
メンバー関数へのポインターを呼び出すには、次の構文を使用します。 used:
(object->*pointer_variable)(params)
ここで:
構文例
次のコード スニペットを考えてみましょう:
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; (box->*h)(xPos, yPos, width, height); }
この例では、HitTest メンバーへのポインターのリスト関数が反復処理されます。各ポインターはリストからフェッチされ、次のようにボックス ポインターを指定することで呼び出されます。
ポインターのリストへのメンバー関数の追加
リストにメンバー関数を追加するにはポインタの場合、次の構文を使用できます:
list.push_back(&box->HitTest);
このコードはポインタを次の場所にプッシュします。 box オブジェクトの HitTest メンバー関数をリストに追加します。
以上がC でメンバー関数へのポインターを呼び出すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。