不只是我孤陋寡闻,还是就是如此。下面陈述问题
我在一个dock的controlbar 上创建了一个 view
本来想把这个view 对象作为一个 controlbar的成员,可程序在退出时会断言出错。
然后我用了指针 在创建controlbar时 new 一个 view .可我在controlbar析构时 delete view
的指针出现内存访问错误。
查明原因是view 类的析构函数先于 controlbar的调用。
我new 的view 程序退出内存不是应该自己回收吗?怎么会自己就析构了呢? 

解决方案 »

  1.   

    controlbar析构时 肯定会先析构它所有的成员对象, 应该在OnDestory里进行 delete view
      

  2.   

    请看我的blog。
    http://blog.csdn.net/Mackz/archive/2005/09/23/488237.aspx
      

  3.   

    CView是文档视图中的概念,视图类都是由框架动态创建的,所有动态创建的类都会自己释放自己,所以视图类都会自己调用delete this,这个操作是在PostNcDestroy虚函数中完成的。所以你应该在你的CView继承类中重载PostNcDestroy函数,在这个函数中什么都不用做,尤其不能调用基类函数。