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

c++基础+类和对象

引用一旦被赋值,就不能再赋其他值??

如下图

返回返回值的引用意思是返回返回值本身

在主函数中调用func函数,该函数返回a的引用(a的别名),出函数后a会被销毁,相当于返回野指针

被引用的数据的数据类型&(引用) 引用新名字 = 旧名字

int a=10;

int &ra = a;

cons修饰引用对象做函数参数(被引用对象不需要修改时)时范围会很宽泛,以后会这么做

不能再引用其他对象意思是不能再换被引用对象(不能变成其他人的别名)

宏是一个函数,替换,不建立栈帧,提高效率,但是顾虑太多,c++中用online函数代替他

编译时 C++ 编译器会在调用的地方展开内联函数
  • 普通函数的调用流程:程序运行到函数调用语句时,CPU 会跳转到函数的内存地址执行代码,执行完成后再跳回原来的调用位置继续执行。这个过程有固定的额外开销。
  • 内联函数的处理:编译器在编译阶段(不是运行时),就把内联函数的函数体代码,直接 “复制粘贴” 到每一个调用这个函数的位置,替换掉原来的函数调用语句。运行时没有 “跳转调用” 的过程,直接执行展开后的代码。
  • 栈帧:函数调用时,会在程序的栈内存上开辟一块专属空间,用来保存函数的参数、局部变量、返回地址、寄存器状态等数据。每次函数调用都要创建栈帧,函数执行完还要销毁栈帧,这个过程有 CPU 和内存的固定开销。
  • 效率提升的逻辑:内联函数在编译时直接展开后,运行时就没有了函数调用的动作,自然也就不需要为这个函数创建、销毁栈帧,消除了函数调用的额外开销。对于频繁调用的短小函数,这个优化带来的性能提升会非常明显。
  • inline 只是给编译器的建议,不是强制命令。一般是5-10行代码,如果函数体过大、包含递归、复杂循环 / 分支逻辑,编译器大概率会忽略 inline 关键字,拒绝内联,把它当成普通函数处理。
  • 内联函数的函数体通常要和声明放在同一个头文件中。因为编译器要在编译时看到完整的函数体,才能完成展开操作,如果只在头文件声明、cpp 文件定义,跨编译单元无法完成内联。

此时使用空指针null有歧义,以后用nullptr表示空指针

nullptr在逻辑上代表空指针,但它本身不是整数0,而是一个独立的、类型安全的空指针常量

在 C++ 中,推荐始终使用nullptr代替NULL0来表示空指针。

c中结构体除了函数不能放,其他数据类型都能。 类全能放

限定符可以多次使用

​​​​​​​

c中此种用法错误,必须用右图所示,但是C++中两种方法都对。及继承了c中结构体用法,也有c++的新用法(结构体不用写struct)。

c中结构体typedef重命名后将新名字做结构体类型名,再创建该类型变量,如左图。c++中直接将结构体类型名做类型,创建变量。C++中下图两种都兼容

定义在类内的函数默认为inline,如下左图。但也可以将函数声明与定义分开写,将声明写在类外,将定义函数定义在类域内,如下右图

类内的变量为变量声明

类内的变量此时才为变量定义。因为创建类变量如d2,给类内的变量分配了空间

如d2,d3这种以类为模板创建类变量,叫做实例化

http://www.jsqmd.com/news/494314/

相关文章:

  • 基于单矢量控制的永磁同步电机模型预测电流控制Simulink仿真模型 对应学习资料: 1
  • 文墨共鸣模型效果惊艳展示:多风格长文本创作集锦
  • 团队协作只能靠“在线文档”?大错特错!2026 年企业网盘“硬核协作”能力横评
  • 27.3k stars!Fish Speech:开源 TTS 的天花板,10 秒克隆任意声音!
  • 家庭网络小白必看:为什么你的手机和电脑能直接传文件?揭秘同一网段通信的底层逻辑
  • SAP Fiori Launchpad 全景解析:从统一入口到角色化工作台,再到移动端落地实践
  • 题解:P11062 【MX-X4-T2】「Jason-1」加法
  • Grok‑3‑Fast 落地选型与部署方案
  • Asian Beauty Z-Image Turbo实战:如何用结构化提示词生成有故事感的东方人像
  • Excel 实战技巧:利用 OFFSET 统计 “标识行” 下方的数值总和
  • 二叉树的构造、合并与二叉搜索树
  • message-api(WebSocket)消息推送:持久/非持久、已读回写、未读重推全链路解析(含双 Kafka、Redis、TiDB、BloomFilter)
  • 基于改进蛇优化算法(GOSO/ISO)优化极限梯度提升树的数据回归预测(GOSO/ISO-XG...
  • yz-bijini-cosplay多模态实践:文本到图像生成效果展示
  • 为什么你的 Agent 总是“断片”?
  • 密码安全那些事:从明文到 SHA-256 到 BCrypt,为什么一步步升级
  • C++多态:动态行为的核心奥秘
  • 数字电子技术题目
  • 2026年口碑好的纸尿裤工厂推荐:腰贴式纸尿裤/开合式纸尿裤口碑好的厂家推荐 - 品牌宣传支持者
  • 国际大厂德州仪器CC1101无线芯片反向电路学习指南:低功耗传输于ISM频段,模块丰富适合学习...
  • 苍穹外卖Day8 (地址簿 用户下单 功能支付)
  • Node.js 与 npm 的安装与配置(详细教程)
  • WeKnora快速部署攻略:开箱即用,打造个人专属知识问答机器人
  • ssm+java2026年毕设社区医院综合管理信息系统【源码+论文】
  • 三电平T型逆变器仿真模型:基于MATLAB Simulink的PWM控制与无中点电位不平衡控制
  • 小白友好:Qwen3-Reranker-0.6B本地部署,轻松提升RAG检索精度
  • Jmeter实战--压测 基本流程
  • 计算机毕业设计源码:Python基于Spark与Hive的酒店大数据分析与推荐系统 Django框架 Vue 可视化 Hadoop 爬虫 协同过滤推荐算法 民宿 客栈(建议收藏)✅
  • Windows系统下SIMetrix库管理终极方案:自定义中央仓库+环境变量配置教程
  • SpringAI大语言模型应用案例:智能问答系统开发