C ++:按值传递变量

时间:2009-11-07 18:07:07

标签: c++

情况就是这样:

int f(int a){
    ...
    g(a);
    ...
}

void g(int a){...}

问题是编译器说没有匹配函数来调用g(int&)。它希望我通过引用传递变量,g()按值接收参数。

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:12)

嗯,这里并不多,但第一件事是:确保你在定义f之前有一个包含g的声明。

void g(int a);

否则,当你到f时,函数f不知道g看起来是什么函数,你会遇到麻烦。从你到目前为止所给出的,这是我能说的最好的。

答案 1 :(得分:1)

您的功能g()需要在f()

之上定义

答案 2 :(得分:0)

有两件事是错的:

1)g在使用之前未声明,因此编译器将对此进行说明。假设您修复了该问题,那么下一个问题是:

2)f没有返回int。