メンバー関数への C ポインターの呼び出し
C でメンバー関数へのポインターを呼び出すための適切な構文を理解することが重要です。この質問では、そのようなポインターを呼び出す具体的な方法と、メンバー関数をリストに追加するプロセスについて説明します。
メンバー関数へのポインターの呼び出し
この質問では、次のことが示されています。次の構文を使用してメンバー関数へのポインターを呼び出そうとしているコード スニペット:
(*h)(xPos, yPos, width, height);
ただし、正しい構文では、名前付きパラメータと this ポインタの両方を指定する必要があります。したがって、修正された行は次のようになります。
(box->*h)(xPos, yPos, width, height);
これにより、メンバー関数を呼び出すときに正しい this ポインターが使用されることが保証されます。
リストへのメンバー関数の追加
この質問では、メンバー関数をリストに追加する方法も示しています。ここでは、メンバー関数へのポインターが std::list に格納されています。以下のコードはプロセスを示しています。
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 ポインターのリストを反復処理し、各 HitTest メンバー関数のアドレスを std::list にプッシュします。各メンバー関数は、特定の Box オブジェクトの this ポインターを参照するメンバー関数へのポインターによって表されます。
以上がC ポインタを正しく呼び出してメンバー関数に追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。