int set()
{
return a;
}
- 此时生成的是变量a的一个拷贝,即生成了一个临时变量,当这个变量使用完毕之后,变量就被销毁了,所以这种返回不能用作左值运算
如:set() = 5;这是不正确的。
int& set()
{
return a;
}
返回的是引用,那么,就相当于返回的是变量a的别名,就可以对该变量操作,如赋值等等。
- set() = 5;是正确的。
但是在引用返回时得注意一个问题,就是不能返回局部变量的引用,如:
int& set()
{
int a;
return a;
}
此时就会调用出错,因为a是临时变量,函数结束是就自动销毁了,不能再创建别名了。
- 但是将int & 改成int就可以了。