Hra*_*ant 4 c++ initialization reference
当我尝试编译以下代码时
int main()
{
unsigned char uc;
char & rc = uc;
}
Run Code Online (Sandbox Code Playgroud)
g ++给出以下错误:从'unsigned char'类型的表达式初始化'char&'类型的引用无效.使用signed char而不是unsigned char时会发生同样的情况.但以下编译得很好
int main()
{
unsigned char uc;
const char & rc = uc;
}
Run Code Online (Sandbox Code Playgroud)
为什么不能使用'unsigned char'类型的变量初始化'char&',而可以用它初始化'const char&'?
为什么不能使用'unsigned char'类型的变量初始化'char&',而可以用它初始化'const char&'?
因为后者在unsigned char转换为a 时会创建一个临时绑定到const引用char,这是非const引用无法做到的.char,signed char和,unsigned char是三种不同的类型,如C++11§3.9.1中所述:
Plain char,signed char和unsigned char是三种不同的类型
| 归档时间: |
|
| 查看次数: |
4933 次 |
| 最近记录: |