delete CArray or CMap object

Hi,

I want to delete an object that was inherit from CArray<CMyObj*,CMyObj*>. I need to delete all the added CMyObj* objects.
I know that if the class was an array of non-pointer object, all I had to do is call RemoveAll() in the constructor.
I also know that since the class is array of pointer object I should implements the DestructElements() helper function. (This function is used by RemoveAll() function.)

So, what I need is an example that implements that function.

Thanks
me.
ramicAsked:
Who is Participating?
 
me8873Connect With a Mentor Commented:
say u have pointers of objects of CString:


in the header file:
typedef CString * PCString;
template<> void AFXAPI DestructElements(PCString* pElements, int nCount);

in the cpp file:

template<> void AFXAPI DestructElements(PCString* pElements, int nCount)
{
      ASSERT(nCount == 0 ||
            AfxIsValidAddress(pElements, nCount * sizeof(PCString)));

      for (; nCount--; ++pElements)
            delete *pElements;
}
0
All Courses

From novice to tech pro — start learning today.