临时对象不可避免,但是可以减少。尽可能地减少临时对象的产生,就是尽可能地减少临时对象所带来的性能损耗。
临时对象产生的主要情形:
<1> 参数
比如:函数的入口参数设置成list l, string name之类的
避免方法:采用传常量引用或者指针取代传值。
传值传递方式下,在调用过程中,会根据具体的实参来生成对应的拷贝,也就是临时对象,并传入函数以供使用。
<2> 后缀
在后缀重载实现中,对象需自增,然后返回包含原值的临时对象,而前缀操作就可以避免临时对象的产生。
<3> 参数转换
<4> 返回值
遵循single-entry/single-exit原则,避免同一函数中存在多个return语句。