ホームページ >バックエンド開発 >C++ >C ポインタを正しく呼び出してメンバー関数に追加するにはどうすればよいですか?

C ポインタを正しく呼び出してメンバー関数に追加するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-07 14:33:12516ブラウズ

How to Correctly Call and Add C   Pointers to Member Functions?

メンバー関数への 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。