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