64,685
社区成员
发帖
与我相关
我的任务
分享
void f(char c)
{
}
void g(char&)
{
}
void h(const char&)
{
}
void main()
{ unsigned char uc=255;
f(uc);
g(uc);//wrong
h(uc);
}
double val=1.00;
const int &ri=val;//类型不同
编译器会把其转换成这样来编码
int temp=val;
const int&ri=temp;//通过一个临时变量来绑定
加入ri不是const,那么就可以对ri赋值。这样做只会修改temp临时变量,而不修改原本的val
void g(unsigned char& c)
{
//非const引用只能绑定到与该引用同类型的对象
//const引用则可以绑定到不同但相关的类型的对象或绑定到右值
}