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

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

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

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

猜你喜欢

转载自www.cnblogs.com/sozze011/p/11257281.html