Chinaunix

标题: 关于函数的引用参数和隐式转换的问题,C++ [打印本页]

作者: imdemon    时间: 2009-03-09 17:43
标题: 关于函数的引用参数和隐式转换的问题,C++
int fuck(int& i)
{
        //i = 1;

        return i;
}

int main()
{

        float i = 1;
        float j = 2;
        fuck(i);
        //fuck(j);

        return 0;
}


这段代码是编译不通过的。。

改成这样int fuck(const int& i),则通过。

这是否说明当函数参数为引用时,发生隐式转换形成的那个临时变量必然是const类型的?
作者: imdemon    时间: 2009-03-10 18:33
牛逼,没人回。。。
作者: konhon    时间: 2009-03-10 19:27
More Effective C++中有详细的解释
作者: qakito    时间: 2009-03-11 10:17
《c++ primer》第四版中第2章有讲到:

非const引用只能绑定到与该引用同类型的对象。
const引用则可以绑定到不同但相关的类型的对象或绑定到右值。

所以,float j = 2, int& i = j不可
      float j = 2, const int& i = j可。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2