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引用參數傳
相關文章
相關標籤/搜索