ホームページ > 記事 > ウェブフロントエンド > POSITIONの使用説明
POSITION は、MFC テンプレート クラス ライブラリでよく使用される データ型 です。その定義から、実際にはポインターであることがわかります。
//抽象反復位置
struct POSITION {};
typedef POSITION* POSITION;
MFC によって与えられるコメントは次のとおりです: 抽象反復位置、それは抽象であるため、つまり、さまざまなニーズを満たすために特定のデータ型が指定されていません。 テンプレートパラメータは必須です。
CList では、POSITION は reference パラメーターまたは戻り値としてよく使用されます。以下に、このデータ型を理解するのに役立つ 2 つの簡単な例を示しますが、その前に、多くの人が POSITION の空の 構造 について疑問を表明しており、これが彼らにとって障害となっているようですので、詳しく説明したいと思います。理解。これは空の構造体なので、ポインタを定義するためにどのように使用できるでしょうか?実際、C++ コンパイラーは空の構造体を完全に空であるとはみなしません。実際、率直に言うと、POSITION 構造体は unsigned char 型と同等なので、POSITION は同等です。 Windows の BYTE 型である unsigned char に変換されるため、POSITION は同等の形式 (BYTE*) になります。
CList の 2 つの典型的なメンバー関数を説明の焦点として取り上げます。もちろん、CList がリンクされたリスト データ構造であることは誰もが知っているはずです。これら 2 つの関数を見てみましょう:
1. POSITION GetHeadPosition() const;
明らかに、この関数はリンクされたリストの先頭を取得するために使用され、その戻り値は実際にはポインターです。このポインタは誰を表していますか?もちろん、これはあなたが常に望んでいたリンク リストの先頭へのポインタです。このポインタは許可なく削除してはなりません。
2. TYPE& GetAt(POSITION 位置);
この関数はかなり奇妙に見えます。唯一の入力パラメーターはポインターです。実際、それは GetHeadPosition を使用して取得したばかりのヘッド ノード ポインターである可能性があります。この関数の意味は、ノードのアドレスを指定する必要があることです。その後、CList はチェーン全体を走査して、このアドレスに一致するノード データを検索して返します。
ナンセンスはたくさんありますが、一言で言えば、それはタスクを達成します。つまり、
POSITION、それは学生IDと考えることができ、それがあれば、どのクラスの生徒も見つけることができます。
POSITION は、MFC でさまざまな List オブジェクトや
Array オブジェクトの インデックスを保存し、トラバース中に要素の位置を識別しやすくするために使用されます。実際、これは 32 ビット値であり、その内容はポインタまたは配列のインデックスである可能性があります。
以上がPOSITIONの使用説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。