C++错误之一 :invalid initialization of non-const reference of type ‘xxx&’ from an rvalue of type ‘xxx’

一、看代码   二、编译结果   三、分析和解决 就拿f(a + b)来讲,a+b的值会存在一个临时变量中,当把这个临时变量传给f时,因为f的声明中,参数是int&,不是常量引用,由于c++编译器的一个关于语义的限制。若是一个参数是以非const引用传入,c++编译器就有理由认为程序员会在函数中修改这个值,而且这个被修改的引用在函数返回后要发挥做用。但若是你把一个临时变量看成非const引用参数传
相关文章
相关标签/搜索