int fun(int& c)
{
int a = c+1;
return a;
}
int funb(int b)
{
return b;
}
int main()
{
int b = 10;
int& a= funb(b); //报非常量引用的初始值必须为左值
int& c = 10;// 报非常量引用的初始值必须为左值
cout << fun(funb(b)) << endl;// 报非常量引用的初始值必须为左值
return 0;
}
1)通常函数的正常返回值是一个右值,所以给引用初始化复制一个函数返回值是有问题的。
2)类似于nt& c = 10 给引用赋值了一个常量右值
将 int& a= funb(b); 拆成两歨, 变成int c= funb(b); int& a=c;
int fun(int& c)
{
int a = c+1;
return a;
}
int funb(int b)
{
return b;
}
int main()
{
int b = 10;
int d = funb(b);
int& a= d;
cout << fun(d) << endl;
return 0;
}
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务