這通過變量的情況是:C++:按值
int f(int a){
...
g(a);
...
}
void g(int a){...}
的問題是,編譯器說有呼叫到g中沒有匹配的功能(INT &)。它希望我通過引用傳遞變量,並且g()通過值接收參數。
我該如何解決這個問題?
這通過變量的情況是:C++:按值
int f(int a){
...
g(a);
...
}
void g(int a){...}
的問題是,編譯器說有呼叫到g中沒有匹配的功能(INT &)。它希望我通過引用傳遞變量,並且g()通過值接收參數。
我該如何解決這個問題?
嗯,這裏沒有太多,但第一件事是:確保你有一個g的聲明,它包含在f被定義之前。
void g(int a);
否則,當你到達f時,函數f不知道函數g是什麼樣的,你會遇到麻煩。從迄今爲止所給出的,這是我能說的最好的。上述f()
你的功能g()
需要有兩個錯誤:在使用前
1)G不宣,所以編譯器將compain有關。假設你解決了這個問題,那麼下一個問題是:
2)f不返回一個int。
你的意思是*聲明*。編譯器尋找函數的存在,然後鏈接到實際的實現(*定義*)。 – 2009-11-07 18:33:49
是的,這也會工作,但如果它是簡單的功能更好*定義*它上面 – Ponting 2009-11-07 18:40:04
被定義
如果您切換「f」和「g」的定義,會發生什麼情況? – 2009-11-07 18:08:35
你確定這是正確的代碼嗎?函數f返回一個int,但沒有返回語句。 – Tadmas 2009-11-07 18:11:07
你能發佈編譯器錯誤嗎? – Dani 2009-11-07 18:11:20