C++效率编程心得

看完了Effective c++和More Effective c++ 2本书,把自己的一些心得写下来:
  1.尽量以const,enum,enum class,enum,inline代替define宏;
  2.尽可能的使用const;
  3.尽可能的使用reference-to-const 代替by value,但是该by value的时候还是得用by value,例如,如果函数返回的是一个局部对象,或指针时,不应该用reference-to-const,因为资源以及是否掉了,或则会存在资源泄漏;
  4.如果要求提高效率,但是返回的对象是局部对象时,不能使用reference-to-const,可以使用inline,这样就没有了将亡值得资源开销,当然也可以使用移动构造函数:
inline Obj fun(){
Obj o;
return o;
  }
void main()
{
Obj retObj = fun();//没有产生临时值(将亡值)的资源开销
  //当然也可以把Obj类编写移动构造函数,也可以取消将亡值的资源开销
}

5.不要让异常逃离析构函数,即异常要在析构函数中处理完成,不能到之外,可以这样;

try{
close();//销毁资源
throw();
}
catch(...)//捕捉所有的异常,不做任何的处理
{}//必须空,不做任何处理,否则catch也有可能抛出异常
  6.不要在构造函数中调用virtual函数,因为在此期间virtual函数不会下降至派生类;
  7.将成员变量尽量声明为private;
  8.以by-reference的方式处理exception,这样可以提高效率;
try{
exception ex;
throw ex;
}
catch(exception & ex)
{
cout << ex.what() << endl;
}
  9.在适当的时候使用智能指针,不能过于依赖智能指针,也不能不用智能指针,智能指针在某些方面确实很有用。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值