c++产生非常量引用的初始值必须是左值

Posted sozze011

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++产生非常量引用的初始值必须是左值相关的知识,希望对你有一定的参考价值。

出现这种情况是因为调用函数的形参类型是  T&(T为某一类型),该类型与调用参数值传入不一致,比如函数中形参是int型,而传入实参是double,存在隐式类型转化,系统会自动产生临时变量temp将常量进行了修改。

 

 

解决的办法,1避免隐式调用,如:int y=5;double x=(double)y,然后再将x值传入函数

2.在形参面前加const,避免了修改形参。

以上是关于c++产生非常量引用的初始值必须是左值的主要内容,如果未能解决你的问题,请参考以下文章

“非常量引用的初始值必须为左值“及“匿名对象“

非常量引用的初始值必须为左值的问题

错误 C2106:'=':左操作数必须是左值 c++

C++(E0158 表达式必须是左值或函数指示符)和(错误 C2102 '&' 需要左值)

C++ 错误“左操作数必须是左值”

左值与右值引用 详解