1、在定義單個數據對象時,如果對象不是特別大(比如某些資源加載的情況),盡量使用stack對象,避免直接使用new或malloc動態生成對象;
2、如果類的成員變量必須是指針對象的話,采用在構造函數中申請(new)并在析構函數中銷毀(delete)的辦法,避免memory leak;
3、定義數組時,使用向量:std::vector<char> vBuffer(nSize),而不要使用 char* a=new char[nSize];這樣可以讓容器替你維護這段內存;如果數組大小固定且應用簡單的話也可以使用固定長度的數組, 如char text[nSize];
4、很多教程都在談std::auto_ptr的好處,但在我的經驗中必須使用std::auto_ptr的地方很少,我只見過兩種:一是factory method返回動態對象指針時,為了保證內存釋放最好使用智能指針封裝;二是加載特別大的資源對象時,這種對象由于太大而不適合放在stack中;
5、使用傳引用方式傳參pass-by-reference(-to-const),避免使用傳指針pass-by-pointer的方式,這樣既可以免去指針判NULL的檢查,又可以在不失去對象所有權的前提下傳遞std::auto_ptr<...> 對象