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<...> 对象