2012-02-08 115 views
0

我做了這樣的函數:參數傳遞錯誤

void function(Objectx &x); 

我調用該函數是這樣的。

當我編譯它,我得到這個:

error: no matching function for call to ‘function(Objectx)’ 
note: candidate is: void function (Objectx&) 

很抱歉,如果是一個蹩腳的問題,但我沒有在任何地方找到一個解決方案。你有什麼建議嗎?

+0

你只宣佈函數沒有定義它 – Devjosh 2012-02-08 18:52:41

+0

我想我們需要更多的信息。 – 2012-02-08 18:53:49

回答

3

我不認爲你已經顯示了導致錯誤的真實代碼。 (一方面,被指控的代碼有Obectx和錯誤說Objectx

,如果你通過一個臨時值(右值)即會發生錯誤,因爲非const引用不能綁定到右值。

如果功能不改變其參數,簽名改爲:

void function(const Objectx &x); 

如果函數改變其參數,您需要將臨時值存儲到一個變量,並通過變量。這樣,函數所做的任何更改最終都會在您可以在調用後訪問的變量中完成。

+0

也許_對象與Obectx是問題:) – 2012-02-08 18:58:53

+0

這裏是真正的代碼: 無效PluginKateXMLEditView :: intialDistributionOfTags(QVector &src); intialDistributionOfTags(rangesList(KD-> documentRange())); rangesList返回QVector yonutix 2012-02-08 18:59:04

+0

這就是_temporary value_問題 – Lol4t0 2012-02-08 19:03:57