1
可能重複:
How come a non-const reference cannot bind to a temporary object?爲什麼const有意義?
這個程序:
int fun()
{
return 1;
}
int main()
{
const int& var = fun();
return 0;
}
我的問題是,爲什麼我必須把一個const以前生產的VAR定義是什麼?如果不是的話,g ++會給我一個錯誤,就像「int'類型爲'int'的非const引用的無效初始化'。 'const'是什麼?
閱讀這篇文章:http://herbsutter.com/2008/01/01/gotw-88-a-candidate-for -the-最重要的const的/。 – mfontanini 2012-08-10 02:04:44
好吧,你已經抑制了錯誤信息,但你的代碼打算做什麼?在你賦值的代碼中賦值後,你不能訪問'var',因爲它是對臨時對象的引用。 – 2012-08-10 02:05:07
最簡單的答案:否則你可能會改變你的函數輸出,這當然是隨機的。 如果您有可以更改的內容,則可以將其設置爲非常量引用。 這是一個簡單直觀的(和正確的)規則如何使用「const」。 – klm123 2012-08-10 02:11:23