函数返回值为引用问题,

2025-04-15 07:19:44
推荐回答(2个)
回答1:

a+b 为表达式,按照语法规则,虽然a、b有效,但是这类中间值退出函数之后就要消亡,你的是const int &返回,自然就会生成一个临时无名变量来保存这个值
警告很正常,因为是引用,最好是退出后不消亡的空间才不会警告
当然,如果你不是const,自然不能编译,因为int & 需要绑定到变量上

回答2:

返回引用的时候一定要返回生存期在这个函数以外的变量
a+b是个临时值,而且还是个右值,你返回对它的引用是没有任何意义的