清风竹林

ぷ雪飘绛梅映残红
   ぷ花舞霜飞映苍松
     ----- Do more,suffer less

C++中对象生成及使用策略

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


posted on 2008-10-20 10:34 李现民 阅读(463) 评论(0)  编辑 收藏 引用 所属分类: 语法试炼


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理