C メンバー関数へのポインターの呼び出し
C でメンバー関数へのポインターを呼び出すには、非静的性質のため、固有の構文が必要です。このような関数を効果的に呼び出すには、関数が呼び出されるオブジェクトを表す this ポインターを名前付きパラメーターと一緒に指定する必要があります。
コードでメンバー関数ポインターを指定するには:
typedef void (Box::*HitTest) (int x, int y, int w, int h);
これは、HitTest メソッドのメンバー関数ポインター型を定義します。 Box クラス。
メンバー関数をリストに追加するには:
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->*h)(xPos, yPos, width, height);
Inこの例では、box は this ポインタを表します。 h は HitTest メソッド、および xPos、yPos、width、および へのポインターです。 height は関数パラメータです。
以上がC メンバー関数ポインターを呼び出すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。