我做了這樣的函數:參數傳遞錯誤
void function(Objectx &x);
我調用該函數是這樣的。
當我編譯它,我得到這個:
error: no matching function for call to ‘function(Objectx)’
note: candidate is: void function (Objectx&)
很抱歉,如果是一個蹩腳的問題,但我沒有在任何地方找到一個解決方案。你有什麼建議嗎?
我做了這樣的函數:參數傳遞錯誤
void function(Objectx &x);
我調用該函數是這樣的。
當我編譯它,我得到這個:
error: no matching function for call to ‘function(Objectx)’
note: candidate is: void function (Objectx&)
很抱歉,如果是一個蹩腳的問題,但我沒有在任何地方找到一個解決方案。你有什麼建議嗎?
我不認爲你已經顯示了導致錯誤的真實代碼。 (一方面,被指控的代碼有Obectx
和錯誤說Objectx
)
,如果你通過一個臨時值(右值)即會發生錯誤,因爲非const
引用不能綁定到右值。
如果功能不改變其參數,簽名改爲:
void function(const Objectx &x);
如果函數改變其參數,您需要將臨時值存儲到一個變量,並通過變量。這樣,函數所做的任何更改最終都會在您可以在調用後訪問的變量中完成。
你只宣佈函數沒有定義它 – Devjosh 2012-02-08 18:52:41
我想我們需要更多的信息。 – 2012-02-08 18:53:49