Chinaunix首页 | 论坛 | 博客
  • 博客访问: 300230
  • 博文数量: 148
  • 博客积分: 4365
  • 博客等级: 上校
  • 技术积分: 1566
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-05 21:38
文章分类
文章存档

2014年(2)

2013年(45)

2012年(18)

2011年(1)

2009年(54)

2008年(28)

我的朋友

分类: C/C++

2013-01-07 11:25:50

需要返回一个对象时(尤其是重载的四则运算符),直接采用return by value 返回一个局部对象,抛弃引用指针的传址形式。传址方式返回有以下风险:如果是局部对象,则函数结束时就已经被销毁,堆区对象则面临着谁进行释放的问题,下面这种连续调用还可能引发内存泄露。
a = b + c +d;

也不要试图在此使用静态成员来图方便,易导致bug

if((a+b) == (c+d))

使用静态成员保存结果,这里将是恒等的,因为第二次的值覆盖了第一次的值。
阅读(341) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~