c++产生非常量引用的初始值必须是左值
Posted sozze011
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++产生非常量引用的初始值必须是左值相关的知识,希望对你有一定的参考价值。
出现这种情况是因为调用函数的形参类型是 T&(T为某一类型),该类型与调用参数值传入不一致,比如函数中形参是int型,而传入实参是double,存在隐式类型转化,系统会自动产生临时变量temp将常量进行了修改。
解决的办法,1避免隐式调用,如:int y=5;double x=(double)y,然后再将x值传入函数
2.在形参面前加const,避免了修改形参。
以上是关于c++产生非常量引用的初始值必须是左值的主要内容,如果未能解决你的问题,请参考以下文章