情况就是这样:
int f(int a){
...
g(a);
...
}
void g(int a){...}
问题是编译器说没有匹配函数来调用g(int&)。它希望我通过引用传递变量,g()按值接收参数。
我该如何解决这个问题?
答案 0 :(得分:12)
嗯,这里并不多,但第一件事是:确保你在定义f之前有一个包含g的声明。
void g(int a);
否则,当你到f时,函数f不知道g看起来是什么函数,你会遇到麻烦。从你到目前为止所给出的,这是我能说的最好的。
答案 1 :(得分:1)
您的功能g()
需要在f()
答案 2 :(得分:0)
有两件事是错的:
1)g在使用之前未声明,因此编译器将对此进行说明。假设您修复了该问题,那么下一个问题是:
2)f没有返回int。