当前位置: 首页 > news >正文

const引用

const引用

• 可以引⽤⼀个const对象,但是必须⽤const引⽤。const引⽤也可以引⽤普通对象,因为对象的访问权限在引⽤过程中可以缩⼩,但是不能放⼤。

#define _CRT_SECURE_NO_WARNINGS 1 using namespace std; #include <iostream> int main() { const int a = 10; int& ra = a; //这里会出现报错 return 0; }

鲁迅不能干,关我周树人什么事情,这属于偷换概念

//权限的缩小 int b = 1; const int& rb = b; rb++;//报错 b++;
//这并不是权限的放大,这是y拷贝了x的内容开辟了另一块空间 //权限的放大和缩小一种是在引用,还有一种是指针 const int x = 0; int y = x;

这是指针的情况:

int main() { //权限的放大 int a = 10; const int* p1 = &a; //int* p2 = p1; //权限的缩小 int b = 10; int* p3 = &b; const int* p4 = p3; //不存在权限的放大和缩小 //const在*之后修饰指针本身,在*之前是指向的内容 int* const p5 = &b; int* p6 = p5; return 0; }

• 需要注意的是类似 int& rb = a3; double d = 12.34; int& rd = d; 这样⼀些场景下a3的和结果保存在⼀个临时对象中, int& rd = d 也是类似,在类型转换中会产⽣临时对象存储中间值,也就是时,rb和rd引⽤的都是临时对象,⽽C++规定临时对象具有常性,所以这⾥就触发了权限放⼤,必须要⽤常引⽤才可以。

• 所谓临时对象就是编译器需要⼀个空间暂存表达式的求值结果时临时创建的⼀个未命名的对象,C++中把这个未命名对象叫做临时象。

void f1(const int& rx) { } int main() { const int xx = 20; int a = 10; const int& ra = a*3; double b = 12.34; const int& rb = b; f1(xx); f1(a); f1(b); f1(a * 3); return 0; }

const引用的价值在于可以引用const对象,普通对象,临时对象

http://www.gsyq.cn/news/98616.html

相关文章:

  • 36、脚本编程中的参数、循环与数据处理
  • Cameralink采集卡软件EspeedGrab使用讲解:4图像处理
  • 【思维模型】第一性原理 ③ ( 5 Why 分析法 | 明确问题 | 层层深入 | 验证原因 | 改进措施 )
  • 台达DVPES2系列PLC与欧姆龙E5CC温控器通讯实现温控
  • 光伏MPPT仿真-固定电压法+扰动观察法+电导增量法 模型版本:有两个版本2015a和2022...
  • vue基于Spring Boot框架的心理咨询预约管理平台的设计与实现_2uab9a6h
  • 2025 年 AI 资讯公众号平台推荐榜单,精准筛选,助你高效获取 AI 行业核心信息 - 品牌鉴赏师
  • C++类和对象--访问限定符与封装-类的实例化与对象模型-this指针(二)
  • Flink SQL Time Travel用 FOR SYSTEM_TIME AS OF 查询历史快照
  • 31、脚本编程进阶:Here文档、自上而下设计与流程控制
  • vue基于Spring Boot框架的数字乡村旅游景点预约平台的设计与实现_ax346a6i
  • AI:深度学习中反向传播中的链式法则和梯度
  • 英语_阅读_2019 Young Scientist Challenge_待读
  • 计算机毕业设计springboot高考志愿智能推荐系统 基于SpringBoot的考后择校智慧匹配平台 面向新高考的SpringBoot个性化志愿辅助决策系统
  • 29、《pkg-config与GNU Autotools使用指南》
  • 计算机毕业设计springboot汽车智慧检修系统 基于SpringBoot的智能汽车故障预测与维修管理平台 融合IoT的SpringBoot车辆健康监测与维修决策系统
  • 题目集 4~5 总结性 Blog
  • 你写的不是代码,是生存的底气|从“制造思维”到“生长思维”的范式革命
  • 移动应用开发实验室大一上考核
  • DAY 8 打卡训练
  • 详细介绍:Java集合框架概述
  • 基于python+django的学生就业管理的招聘系统(源码+lw+部署文档+讲解等)
  • 基于VFNet的安全装备检测系统Python实现(含代码+模型解析)
  • 基于springboot和vue的Script的线上超市团购系统的设计与实现_kvoptnlt(java毕业设计项目源码)
  • 将NeMo模型转换为Triton兼容格式
  • 基于springboot和vue的人脸识别的无人值守自习室预约签到系统的设计与实现_4s9zffod(java毕业设计项目源码)
  • 经典算法题详解之统计重复个数(三)
  • 力扣 打家劫舍
  • 打卡信奥刷题(2536)用C++实现信奥 P2044 [NOI2012] 随机数生成器
  • 【3D图像技术分析与实现】Apple Vision Pro三维成像技术栈深度解析