天天看點

C++ 記憶體管理的一個規範

在一個類的析構函數中要釋放掉的成員,在該的構造函數中一定要有對這個成員的記憶體配置設定或指向NULL。

如:

class A
{
public:
    A(){
        p = NULL; // 初始化為NULL
    };

    A(int v){
        p = new int; // 配置設定新的記憶體
        *p = v;
    }

    // 下面這個是有問題的:
    A(int * v){
        p = v;
    }

    ~A(){
         if( NULL != p ){
             delete p;
         }
    }
private:
    int *p;
}