2017-01-02 163 views
-1

我最近開始學習C++並偶然發現了這個問題。 請原諒我,如果這聽起來愚蠢的,但爲什麼我們不能通過初始化參考C++

int r= 20; 
int &ref = r; 
ref(20); 

初始化值參考變量雖然沒有使用它作爲一個參考變量時的20幅作品初始化值的這種方法。

IDE:C++ 11

這是爲什麼?

+0

在你的例子中,它是在第2行初始化的。對於第3行,你可以用'ref = 20'指定一個新值。 – wally

+0

還是你想問你爲什麼不能'int&ref(20)'? – wally

+0

@Muscampester我知道我們可以使用'ref = 20',但我沒有得到它,爲什麼我們不能使用'ref(20)'。 – DatDankMeme

回答

2

儘管當不使用它作爲參考變量時,此初始化值爲20的方法有效。

它在什麼意義上起作用?現在編譯器ref(20);看起來像一個函數調用,如果你將int &ref更改爲int ref,你仍然會得到相同的錯誤。

我想你的意思是int r(20);確實有效。在引用的情況下,它們必須首先綁定到它們所引用的變量,這使得不可能綁定到變量並且在相同的地方賦值 - 如果這是您所要求的。

+0

非常感謝,我明白我做錯了什麼。當我初始化'r(20)'時,編譯器認爲我正在給一個函數傳遞一個值。 – DatDankMeme