假设CMap定义如下:CMap<CString, LPCSTR, CClassA*, CClassA*>如果CMap中CClassA的指针指向的是在堆中分配的空间,在没有自定义DestructElements()的时候,当这个CMap类的对象析构的时候能不能自动销毁指针所指向的对象,并且回收内存呢?我试了一下,VC是没报错,但我心里总是没底

解决方案 »

  1.   

    用SmartChecker等东东看看有没有内存泄漏啊
      

  2.   

    CMap只不过是一个Template,并没有析构函数
    因此在你通过CMap构造出来的类中添加析构函数,并自己在代码中销毁对象
      

  3.   

    qrlvls(≌AIR⌒LIKE) (≤和空气一样帅≥√) 
    你说的析构函数是不是就是DestructElements()所实现的功能呢?
    这个函数我没见过例子,不知道该怎么实现
    希望有这方面经验的高手指点一下
      

  4.   

    DestructElements()就是需要你自己编码实现资源得释放和对象销毁