2013-01-04 69 views
1

我有問題要獲取對int的引用(來自ints集合,QList)。但我需要該值來調用另一個使用按值調用的函數。從C++中的參考中獲取值

int my_var = collection[i]; 

nextFunction(my_var); --> ERROR no matching function ... (int&) ... 

如何從該引用獲取值或將其轉換?

我要調用的函數的signatufe看起來是這樣的:

nextFunction(int id, ...); 

及其實際上是一個構造函數。

+4

什麼'nextFunction'的簽名? – chris

+2

發佈'nextFunction'的簽名和* actual *編譯錯誤。 – Nawaz

+0

我很抱歉,但問題變成了與我想象的完全不同的觀點。我顯然傳遞了Object而不是其他參數中的引用,這就是原因。從那以後這個問題就沒有意義了 – georgij

回答

0

我認爲你的問題不同於將參考轉換爲價值。即使一個函數使用按值方法調用,它也會很樂意接受一個引用變量。我曾試圖在視覺工作室和它的工作正常。

在函數調用期間,編譯器通常會對參數進行類型檢查。我認爲你應該看看集合[i]返回的值的類型。 您的編譯器錯誤表明存在類型不匹配。我認爲這與通過價值撥打電話和通過參考電話呼叫無關。

1

如果你只是想通過價值nextFunction你需要一個const添加到您的方法

nextFunction(double& par); 

會導致你的錯誤。

nextFunction(const double& par); 

nextFunction(double par); 

會導致自動轉換。 所以,如果你真的想面值nextFunction內被改變,你需要

nextFunction(int& par);