共用方式為


CTypedPtrList 類別

為類別提供型別安全的「包裝函式」 CPtrList物件。

template< class BASE_CLASS, class TYPE >
class CTypedPtrList : public BASE_CLASS

參數

  • BASE_CLASS
    具型別指標清單類別的基底類別,必須是指標清單類別 (CObListCPtrList)。

  • TYPE
    在類別清單中的項目型別。

成員

850101a7.collapse_all(zh-tw,VS.110).gif公用方法

名稱

描述

CTypedPtrList::AddHead

將項目 (或另一個檔案中的所有項目清單) 加入至清單的開頭 (設定新的開頭)。

CTypedPtrList::AddTail

將項目 (或另一個檔案中的所有項目清單) 加入至清單的尾端 (設定一個新的尾端)。

CTypedPtrList::GetAt

取得這個項目在指定的位置。

CTypedPtrList::GetHead

傳回清單的標頭項目 (不可以是 Null)。

CTypedPtrList::GetNext

取得可逐一查看的下一個項目。

CTypedPtrList::GetPrev

取得可逐一查看的上一個項目。

CTypedPtrList::GetTail

傳回清單的尾端項目 (不可以是 Null)。

CTypedPtrList::RemoveHead

從清單中移除的項目。

CTypedPtrList::RemoveTail

從清單的尾端移除項目。

CTypedPtrList::SetAt

設定這個項目在指定的位置。

備註

當您使用 CTypedPtrList 而不是 CObListCPtrList時, C++ 型別檢查的安裝有助於排除不相符的指標型別所造成的錯誤。

此外, CTypedPtrList 包裝函式執行所需的大部分轉型您是否已經使用 CObListCPtrList

由於所有 CTypedPtrList 函式內嵌,此範本就不會明顯影響您程式碼的大小或速度。

CObList 衍生清單中還原序列化,但是,從 CPtrList 衍生的那些不行。

CTypedPtrList 刪除物件,或,在移除其元素,,才會移除參考的指標,而不是實體。

如需使用 CTypedPtrList的相關資訊,請參閱 Microsoft 知識庫文件 集合樣板類別

範例

這個範例會建立 CTypedPtrList執行個體,將物件序列化,清單儲存至磁碟,然後刪除物件:

typedef CTypedPtrList<CObList, CMyObject*>  CMyList;
CMyList ml;
CMyObject* pMyObject = new CMyObject();
ml.AddTail(pMyObject);

CFileException e;
CFile myFile; 
myFile.Open(_T("CTypedPtrList_File.txt"), 
   CFile::modeCreate|CFile::modeWrite, &e);
CArchive ar(&myFile, CArchive::store);
ml.Serialize(ar);

ar.Close();
myFile.Close(); 

while (!ml.IsEmpty())
{
   delete ml.GetHead();
   ml.RemoveHead();
}
class CMyObject : public CObject
{
public:
     int i;
     void Serialize(CArchive& ar);
     CMyObject() { i = 9876;}
protected:
     DECLARE_SERIAL(CMyObject)
};

IMPLEMENT_SERIAL(CMyObject, CObject, 0)  

void CMyObject::Serialize(CArchive& ar)
{
    CObject::Serialize(ar);
    if(ar.IsStoring())
         ar << i;
    else
         ar >> i;
}

繼承階層架構

BASE_CLASS

_CTypedPtrList

CTypedPtrList

需求

Header: afxtempl.h

請參閱

參考

階層架構圖

CPtrList 類別

CObList 類別

概念

MFC 範例收集