CTypedPtrList 클래스
형식 안전 "래퍼" 클래스의 개체에 대 한 제공 CPtrList.
template< class BASE_CLASS, class TYPE >
class CTypedPtrList : public BASE_CLASS
매개 변수
BASE_CLASS
형식화 된 포인터 목록 클래스의 기본 클래스입니다. 포인터가 목록 클래스 여야 합니다 (CObList 또는 CPtrList).TYPE
기본 클래스 목록에 저장 된 요소의 형식입니다.
멤버
Public 메서드
Name |
설명 |
---|---|
요소를 다른 목록에 있는 모든 요소는 (새 머리 수) 목록의 헤드에 추가 합니다. |
|
요소를 다른 목록에 있는 모든 요소 (새 꼬리 있습니다) 목록 끝에 추가 합니다. |
|
지정 된 위치에 있는 요소를 가져옵니다. |
|
Head 요소 목록 (비어 있을 수 없습니다)을 반환 합니다. |
|
반복에 대 한 다음 요소를 가져옵니다. |
|
반복에 대 한 이전 요소를 가져옵니다. |
|
꼬리 요소 목록 (비어 있을 수 없습니다)을 반환 합니다. |
|
머리의 목록에서 요소를 제거합니다. |
|
목록의 꼬리에서 요소를 제거합니다. |
|
지정 된 위치에 요소를 설정합니다. |
설명
사용 하는 경우 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