1. 基本特点
函数返回值时会产生一个临时变量作为函数返回值的副本,而返回引用时不会产生值的副本。
2. 返回引用的情况及注意事项
1)不要返回局部对象的引用
2)返回函数的参数(该参数也是引用)
3)返回this指向的对象
# 一个问题:c++ 中赋值运算符重载为何要返回引用
① 允许连续赋值
赋值采用的是右结合率,为了实现连锁赋值,赋值操作符必须返回一个reference(引用), 指向调用对象本身。
c++的所有内置类型和标准程序库提供的类型如string,vector,complex,trl:shared_ptr共同遵守。
② 返回引用的效率 > 返回对象
返回对象时,调用拷贝构造函数和析构函数而导致不必要的开销,降低赋值运算符等的效率。