语法上可以,但不要这么做。
举例:
int &f()
{
return 1+2;
}
这个实际相当于
int &f()
{
int temp = 1 + 2; //一个局部变量
return temp;
}
然而当这个函数返回后,就是函数结束了,它的所有局部变量都消失了,即temp消失了;这时你持有的返回值引用的对象,已经没有意义了;
假如这么写 f()++;就会怎么样呢。
可以
引用的是局部地址,但存在一定的风险性
例如:
#include
#include
const int &abc(int a)
{
a++;
return a+2;
}
void main()
{
int a=1;
a=abc(a);
cout<}
结果a为4
显然不可以。返回的结果不可用。
可以返回一个自定义类型...
差不多就可以实现返回算术表达式的功能,
至于是否可以返回算术表达式...
我不太清楚啦...
可以