C++常量引用初始化的内部实现机制
来源:互联网 发布:火车采集器软件 编辑:程序博客网 时间:2024/06/05 08:05
"在C++中,引用的类型必须与其所引用类型的类型一致,但是有一种例外情况就是在初始化常量引用时允许使用任意表达式作为初始值,只要该表达式能够转换成引用的类型即可"——摘自C++ primer
下面我们就分情况讨论一下常量引用的初始化情形:
1、初始值为字面常量
(a)字面常量的类型与常量引用的类型一致
const int &i = 1;
其内部实现机制为:
const int temp = 1;
const int &i = temp;
i绑定的对象并不是字面常量1,而是一个临时量temp
(b)字面常量的类型与常量引用的类型不一致
const int &i = 1.5;(使用double类型的字面常量初始化int类型的引用常量)
其内部实现机制为:
const int temp = 1.5;(此处会丢失精度,temp值为1)
const int &i = temp;
i绑定的对象并不是字面常量1.5,同样是一个丢失精度的临时量temp
2、初始值为变量
(a)变量的类型与常量引用的类型不一致
double val = 1.5;
const int &i = val;
其内部实现机制为:
double val = 1.5;
const int temp = val;(temp被赋值为1,丢失精度)
const int &i = temp;
i绑定的对象并不是变量val,而是一个临时量temp,因此对变量val的操作不会影响引用i;如果继续执行val = 3.5,则i依然为1,不会变成3。
(b)变量的类型与常量引用的类型一致
int val = 1;
const int &i = val;
此时val为int型,和i的类型一致,所以编译器并不会将i绑定到一个临时量上,而是直接将i绑定到val上,因此当val的值被修改时,i的值也会被修改
- C++常量引用初始化的内部实现机制
- C++ 初始化常量引用时内部的实现过程
- c++引用的内部机制
- C/C++ return 如何实现的?return 的内部机制
- const常量的实现机制
- C++常量详解(一)常量指针与常量引用的初始化
- hashmap的内部实现机制
- HashMap的内部实现机制
- C++常量和引用数据成员的初始化
- 【C学习笔记】【疑问】关于const常量的实现机制在C和C++中的不同
- 创建C常量的两种机制
- C++中一般变量、引用变量、常量、 静态变量、静态常量的初始化问题
- 常量、指针和变量的实现机制
- c++ const常量的实现机制
- c++ const常量的实现机制
- C++引用的内部机制,及于指针的区别
- 常量函数、常量引用参数、常量引用返回值[C++]
- 常量函数、常量引用参数、常量引用返回值[C++]
- 10.1作业
- PHP常用代码
- TextView文本可选中
- 欢迎使用CSDN-markdown编辑器
- HPUACM大二周练第三周 E (拓扑排序)
- C++常量引用初始化的内部实现机制
- samba服务的搭建
- elasticsearch的rpm安装
- Ubuntu16.04 安装流程 -4 编程-Git_PyCharm_TeX_VSCode(201709)
- Java I/O流操作
- 大数据之专业术语
- 线性筛
- LSTM中文评论情感分析(粗糙版)
- SoundPool