在函数返回值前可以加引用,不会产生返回值副本,可以避免拷贝操作,直接将值返回出去,如下例子:
float temp = 1.0; //global variable
float& fun()
{
temp = temp +10;
return temp;
}
float& a = fun();
注意,temp一定要是全局变量,或长期存在的类成员变量,a相当于是temp的别名。当返回一个vector是,可以采用这种方式,提高效率。
如果是临时或局部作用域的变量,以下操作就是错误的,一定要注意
float& fun()
{
float temp = 10.0; //local
return temp;
}
float& a = fun();