다음을 통해 공유


CTypedPtrList 클래스

형식 안전 "래퍼" 클래스의 개체에 대 한 제공 CPtrList.

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

매개 변수

  • BASE_CLASS
    형식화 된 포인터 목록 클래스의 기본 클래스입니다. 포인터가 목록 클래스 여야 합니다 (CObList 또는 CPtrList).

  • TYPE
    기본 클래스 목록에 저장 된 요소의 형식입니다.

멤버

Public 메서드

Name

설명

CTypedPtrList::AddHead

요소를 다른 목록에 있는 모든 요소는 (새 머리 수) 목록의 헤드에 추가 합니다.

CTypedPtrList::AddTail

요소를 다른 목록에 있는 모든 요소 (새 꼬리 있습니다) 목록 끝에 추가 합니다.

CTypedPtrList::GetAt

지정 된 위치에 있는 요소를 가져옵니다.

CTypedPtrList::GetHead

Head 요소 목록 (비어 있을 수 없습니다)을 반환 합니다.

CTypedPtrList::GetNext

반복에 대 한 다음 요소를 가져옵니다.

CTypedPtrList::GetPrev

반복에 대 한 이전 요소를 가져옵니다.

CTypedPtrList::GetTail

꼬리 요소 목록 (비어 있을 수 없습니다)을 반환 합니다.

CTypedPtrList::RemoveHead

머리의 목록에서 요소를 제거합니다.

CTypedPtrList::RemoveTail

목록의 꼬리에서 요소를 제거합니다.

CTypedPtrList::SetAt

지정 된 위치에 요소를 설정합니다.

설명

사용 하는 경우 CTypedPtrList 대신 CObList 또는 CPtrList, 형식 검사를 C++ 기능이 일치 하지 않는 포인터 형식에 의해 발생 하는 오류를 제거 하는 데 도움이 됩니다.

또한는 CTypedPtrList 래퍼를 사용한 경우 해야 하는 캐스팅에 많은 수행 CObList 또는 CPtrList.

때문에 모든 CTypedPtrList 함수는 인라인, 사용이 크게 미치지 않습니다 크기나 코드 속도.

목록에서 파생 CObList 에서 파생 된 있지만 serialize 될 CPtrList 수 없습니다.

경우는 CTypedPtrList 개체를 삭제 하거나 해당 요소를 제거할 경우의 포인터만 제거 되 고 엔터티 참조는 없습니다.

사용에 대 한 자세한 내용은 CTypedPtrList, 문서를 참조 하십시오. 컬렉션템플릿 기반 클래스.

예제

인스턴스를 만드는이 예제 CTypedPtrList, 개체 추가, 목록 디스크에 serialize 및 해당 개체를 삭제 합니다.

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

요구 사항

헤더: afxtempl.h

참고 항목

참조

계층 구조 차트

CPtrList 클래스

CObList 클래스

개념

MFC 샘플 수집