C++ 学习笔记(二)

embedded/2025/3/16 8:02:28/

1、C++支持函数重载的原理——名字修饰

【X.cpp】——>预处理:头文件展开/宏替换/去掉注释/条件编译——>【X.i】——>编译:检查语法,生成汇编代码(指令级代码)——>【X.s】——>汇编:将汇编代码转成二进制机器码——>【X.o】——>链接:合并链接,生成可执行程序——>【X.exe】

要实现函数重载,在链接的时候,生成的符号表会引入函数名修饰规则,不同的语言/不同的系统/不同的编译器有不同的函数名修饰规则。有了函数名修饰规则以后,被重载的函数的函数名就不是一样的了。(本质上是把参数带到名字里去了,但是是一种简化的带)
2、引用
引用不是定义一个新的变量,而是对已有的变量取别名。

int a = 0;
int& b = a; //此处b是a的别名,a和b用的同一块空间,如果分别对其取地址会发现地址一样;
// 引用在一般场景下可能没有太大的用处,但在需要输出型参数的时候非常有用
// 本来需要传地址然后解引用的地方(int* i),改成(int& ri)就可以直接用了,ri与i本身等价
int& b;  // 该语句是非法的,引用必须在定义的时候就初始化,决定是谁的引用;
// C++的引用不能改变指向,一旦确定是谁的别名之后就不能变为别人的别名了;

 


http://www.ppmy.cn/embedded/173008.html

相关文章

HTML块级元素和内联元素(简单易懂)

在HTML中,元素可以分为块级元素(Block-level elements)和内联元素(Inline elements)。这两类元素在页面布局和样式应用上有不同的特点和用途。 一、块级元素(Block-level elements) 1. 定义 …

VMware Tools 安装详细教程(Ubuntu 虚拟机)

VMware Tools 安装详细教程(Ubuntu 虚拟机) 本教程适用于 Ubuntu 18.04/20.04/22.04 及以上版本,分为 自动安装(open-vm-tools) 和 手动安装(官方 VMware Tools) 两种方式。 一、推荐方式&#…

蓝耘MaaS平台:阿里QWQ应用拓展与调参实践

摘要:本文深入探讨了蓝耘MaaS平台与阿里QWQ模型的结合,从平台架构、模型特点到应用拓展和调参实践进行了全面分析。蓝耘平台凭借其强大的算力支持、弹性资源调度和全栈服务,为QWQ模型的高效部署提供了理想环境。通过细化语义描述、调整推理参…

DaVinci Resolve(达芬奇)快捷键大全

DaVinci Resolve(达芬奇)剪辑模块中 鼠标操作 与 常用快捷键 的整合指南,按核心功能分类整理: 一、时间线与播放控制 功能目标鼠标操作快捷键说明播放/暂停点击时间线播放头区域空格键按 L 加速播放,J/K 反向播放跳转…

《灵珠觉醒:从零到算法金仙的C++修炼》卷三·天劫试炼(32)万剑归宗破妖阵 - 最长递增子序列(LIS)

《灵珠觉醒:从零到算法金仙的C++修炼》卷三天劫试炼(32)万剑归宗破妖阵 - 最长递增子序列(LIS) 哪吒在数据修仙界中继续他的修炼之旅。这一次,他来到了一片神秘的万剑谷,谷中有一座巨大的万剑归宗剑阵,剑阵闪烁着神秘的光芒。谷口有一块巨大的石碑,上面刻着一行文字:…

VS2019下载链接

Visual Studio 2019 Community 版(免费版): https://aka.ms/vs/16/release/vs_community.exe Visual Studio 2019 Professional 版: https://aka.ms/vs/16/release/vs_professional.exe (使用该版本需要有效的许可证。…

Ant Design Vue UI框架快速打造后台管理管理案例

1、安装vue类声明 npm install types/vue2、安装脚手架工具 $ npm install -g vue/cli3、安装使用组件 # 安装 $ npm i --save ant-design-vue4.x4、全局注册,修改main.ts,注意和app.vue路径 import { createApp } from vue; import Antd from ant-de…

《GitHub网路访问不稳定:解决办法》:此文为AI自动生成

《GitHub网路访问不稳定:解决办法》:此文为AI自动生成 GitHub 网路访问不稳定初现 在当今数字化时代,软件开发行业蓬勃发展,GitHub 作为全球最大的代码托管平台,已然成为无数开发者不可或缺的 “宝库”。它不仅汇聚了…