CObList::GetHead
更新 : 2007 年 11 月
リストの先頭要素の CObject ポインタを取得します。
CObject*& GetHead( );
const CObject*& GetHead( ) const;
戻り値
リストが const CObList へのポインタを使ってアクセスされた場合は、GetHead 関数は CObject ポインタを返します。このとき、この関数は代入ステートメントの右辺にしか使用できないため、リストは変更されません。
リストが直接または CObList へのポインタを使ってアクセスされた場合は、GetHead 関数は CObject ポインタへの参照を返します。このとき、この関数は代入ステートメントの右辺にも左辺にも使用できるので、リストのエントリを変更できます。
解説
GetHead 関数を呼び出す前に、リストが空でないことを確認する必要があります。リストが空の場合、MFC ライブラリのデバッグ環境ではアサートされます。リストに要素があるかどうかは、IsEmpty 関数で確認できます。
CObList::GetHead に類似している他のメンバ関数を以下に示します。
クラス |
メンバ関数 |
---|---|
const void*& GetHead( ) const; void*& GetHead( ); |
|
const CString& GetHead( ) const; CString& GetHead( ); |
使用例
CAge クラスのリストについては、「CObList::CObList」を参照してください。
次の例は GetHead 関数を代入ステートメントの左辺に使用しています。
const CObList* cplist;
CObList* plist = new CObList;
CAge* page1 = new CAge(21);
CAge* page2 = new CAge(30);
CAge* page3 = new CAge(40);
plist->AddHead(page1);
plist->AddHead(page2); // List now contains (30, 21).
// The following statement REPLACES the head element.
plist->GetHead() = page3; // List now contains (40, 21).
ASSERT(*(CAge*) plist->GetHead() == CAge(40));
cplist = plist; // cplist is a pointer to a const list.
// cplist->GetHead() = page3; // Error: can't assign a pointer to a const list
ASSERT(*(CAge*) plist->GetHead() == CAge(40)); // OK
delete page1;
delete page2;
delete page3;
delete plist; // Cleans up memory.
必要条件
ヘッダー : afxcoll.h