Classe CTypedPtrList
Fornece uma segurança de tipos "empacotador" para objetos de classeCPtrList.
template< class BASE_CLASS, class TYPE >
class CTypedPtrList : public BASE_CLASS
Parâmetros
BASE_CLASS
Classe da classe de lista de tipos ponteiro base; deve ser uma classe de lista de ponteiro (CObList ou CPtrList).TYPE
Tipo de elementos armazenados na lista de classe base.
Comentários
Quando você usa CTypedPtrList em vez de CObList ou CPtrList, o recurso de verificação de tipo C++ ajuda a eliminar erros causados por tipos ponteiro incompatíveis.
Além disso, a CTypedPtrList wrapper realiza grande parte do elenco que seria necessário se você tiver usado CObList ou CPtrList.
Porque todos os CTypedPtrList funções in-line, uso deste modelo não afeta significativamente o dimensionar ou a velocidade do seu código.
Listas derivado de CObList pode ser serializada, mas aqueles derivado CPtrList não é possível.
Quando um CTypedPtrList objeto é excluído, ou quando seus elementos são removidos, apenas os ponteiros são removidos, não as entidades que fazem referência.
Para obter mais informações sobre como usar CTypedPtrList, consulte os artigos Coleções and Classes com base em modelo.
Exemplo
Este exemplo cria uma instância de CTypedPtrList, adiciona um objeto, serializa a lista de disco e, em seguida, exclui o objeto:
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;
}
Requisitos
Cabeçalho: afxtempl.h
Consulte também
Tarefas
COLETAR Exemplo: Ilustra as classes de coleção do MFC