当前位置: 首页 > 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.jsqmd.com/news/88307/

相关文章:

  • vue基于Spring Boot框架的小型企业薪资绩效工资评估管理系统的设计与实现_311837nn
  • Comsol仿真:相场法多晶铁电体介电击穿模拟全解析
  • 27、Unix 系统下的文档格式化与打印指南
  • vue基于Spring Boot框架的新生入学报道管理系统_j956n3k5
  • 光伏MPPT仿真-固定电压法+扰动观察法+电导增量法 模型版本:有两个版本2015a和2022...
  • 台达DVPES2系列PLC与欧姆龙E5CC温控器通讯实现温控
  • 【思维模型】第一性原理 ③ ( 5 Why 分析法 | 明确问题 | 层层深入 | 验证原因 | 改进措施 )
  • G2Plot柱状图和环形图
  • vue基于Spring Boot框架的心理咨询预约管理平台的设计与实现_2uab9a6h
  • 2025 年 AI 资讯公众号平台推荐榜单,精准筛选,助你高效获取 AI 行业核心信息 - 品牌鉴赏师
  • C++类和对象--访问限定符与封装-类的实例化与对象模型-this指针(二)
  • Flink SQL Window Deduplication按窗口“保留第一条/最后一条”记录(Streaming)
  • vue基于Spring Boot框架的药店药品线上购买管理系统_lo96r78o
  • SQL的分类
  • 30、编写脚本与项目开发入门
  • 28、Glade开发指南与pkg-config工具介绍(上)
  • 不带头节点的链式存储实现链栈
  • vue基于Spring Boot框架的技术的网上购物商城系统开发商家_9ah8o18s
  • Tarjan全家桶系列--割点
  • Flink SQL 模式识别用 MATCH_RECOGNIZE 把 CEP 写成 SQL
  • [编程杂谈]这题怎么这么难!!!(上)
  • Flink SQL Time Travel用 FOR SYSTEM_TIME AS OF 查询历史快照
  • AI:深度学习的前向传播和反向传播
  • 31、脚本编程进阶:Here文档、自上而下设计与流程控制
  • 基于SSM的高校大学生就业平台的设计与实现
  • vue基于Spring Boot框架的数字乡村旅游景点预约平台的设计与实现_ax346a6i
  • 计算机毕业设计springboot高考志愿智能推荐系统 基于SpringBoot的考后择校智慧匹配平台 面向新高考的SpringBoot个性化志愿辅助决策系统
  • AI:深度学习中反向传播中的链式法则和梯度
  • 英语_阅读_2019 Young Scientist Challenge_待读
  • 《Ascend C 进阶实战:高性能通用 Softmax 算子设计、数值稳定性与多轴支持》