Программирование на языке MFC

Мой второй блог в серии программирования

Класс для работы с массивом указате­лей на объекты


Итак, в файле afxcoll.h класс для работы с массивом указате­лей на объекты описан следующим образом:

class СОЬАггау : public CObject {

DECLARE_SERIAL(СОЬАггау) public:

// Construction СОЬАггау() ;

// Attributes

int GetSize() const;

int GetUpperBound() const;

void SetSize(int nNewSize, int nGrowBy = -1);

// Operations // Clean up void FreeExtraO; void RemoveAll();

// Accessing elements

CObject* GetAt(in-t nlndex) const;

void SetAt(int nlndex, CObject* newElement);

CObject*& ElementAt(int nlndex);

// Direct Access to the element data (may return NULL) const CObject** GetDataO const; CObject** GetDataO;

// Potentially growing the array

void SetAtGrow(int nlndex, CObject* newElement);

int Add(CObject* newElement);

int Append(const CObArray& src); void Copy(const CObArrayS src);

// overloaded operator helpers CObject* operator [] (int nlndex) const!1; CObject*& operator[](int nlndex);

// Operations that move elements around void InsertAt(int nlndex,

CObject* newElement,

int nCount = 1);

void RemoveAt(int nlndex, int nCount = 1);

void InsertAt(int nStartlndex, CObArray* pNewArray);

// Implementation protected:

CObject** m_pData; // the actual array of data
int m_nSize;
// # of elements (upperBound – 1)

int m_nMaxSize; // max allocated int m_nGrowBy; // grow amount

public:

-CObArray();

void Serialize(CArchiveS); #ifdef _DEBUG

void Dump(CDumpContextS) const;

void AssertValid() const; #endif

protected:

// local typedefs for class templates typedef CObject* BASE_TYPE; typedef CObject* BASE_ARG_TYPE;

};

Похожие статьи: