这段代码有什么问题? 没有用于调用fun1(z *)
的匹配函数int fun1(int &z)
{
return z+4;
}
int fun2(int & z)
{
return z*3;
}
void main()
{
int b=6;
int m=fun1(fun2(b));
}
答案 0 :(得分:1)
非const引用不能绑定到rvalues。换句话说,fun2
返回一个临时整数,它不能用作fun1
的参数,因为它需要它可以绑定的东西。将fun2
的结果存储在辅助变量中,或将fun1
更改为以下任一项:
int fun1(int z) // copy
int fun1(int const& z) // const ref
顺便说一下,void main
不是合法的C ++。