19-了解临时对象的来源
第四章,效率
条款19 了解临时对象的来源
概述: 临时对象并不是写在函数内部的对象,那是局部对象。真正的临时对象是不可见的,不会出现在源码中。临时对象只会产生于这两种情况下:
1、隐式类型转换被施行起来以求函数调用能够成功;
2、当函数返回对象时
临时对象的产生,情况1: 以求函数调用能够成功
//计算某字串中某字符出现的次数 |
临时对象的产生,情况2: 函数返回对象
const Number operator+(const Number& lhs, |
总结:
临时对象可能很耗成本,应该尽可能消除它们。
因此,有依据的找出这些情况非常重要,任何时候看到一个reference-to-const参数,就既有可能会参数一个临时对象产生出来绑定到该参数上。
任何时候,只要看到函数返回一个对象,就会产生临时对象。
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.
