需要返回一个对象时(尤其是重载的四则运算符),直接采用return by value 返回一个局部对象,抛弃引用指针的传址形式。传址方式返回有以下风险:如果是局部对象,则函数结束时就已经被销毁,堆区对象则面临着谁进行释放的问题,下面这种连续调用还可能引发内存泄露。
a = b + c +d;
也不要试图在此使用静态成员来图方便,易导致bug
if((a+b) == (c+d))
使用静态成员保存结果,这里将是恒等的,因为第二次的值覆盖了第一次的值。
阅读(341) | 评论(0) | 转发(0) |