2010.6.17

 

一、MFC框架的析构顺序:

    1、view析构函数->view中分配的堆对象(如果该对象有继承关系,则先调用子类析构函数,然后调用基类析构函数)
    2、MainFrame析够函数->MainFrame中分配的堆对象(如果该对象有继承关系,则先调用子类析构函数,然后调用基类析构函数)

二、关于释放堆内存

   1、凡是在堆上申请的内存块(用new申请),都需要释放。

       a、如果是在函数内部申请,并且没有引用到别的地方,要在函数内部释放掉;

       b、如果是在类中定义的变量,需要在析构函数中释放;

       释放掉内存块儿后,需要将原有的指针设置为NULL,否则将成为悬空指针(野指针),野指针非常危险,如果其它地方使用,可能指向未知的内存块儿。

   2、比如一个Map,每个关键字key,对应一个堆上分配的指针。

       当需要清除一个键/值对儿的时候,需要先释放value对应的内存块儿。

 

你可能感兴趣的:(2010.6.17)