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

c++--函数重载

概念

函数重载就是在同一个作用域中定义多个形参列表(参数个数 或 类型 或 类型顺序)不同函数名相同的函数,在调用函数时根据传入的实参列表就能在多个同名函数中调用最匹配的一个。


原理

简单来说,每一份代码都会在汇编阶段生成一张符号表,符号表里面有函数名和函数地址的映射关系。程序运行时通过函数名找到函数地址并执行函数。

可以预见的是,符号表里面的函数名如果只是函数名,那么函数重载不可能实现,因为所有重载函数的函数名都是一样的,无法区分。

c++编译器通过在汇编时用形参列表的信息修饰函数名来区分同名不同参的函数,在这种情况下形参列表不同函数名相同的函数在符号表中的函数名是不同的,可以区分开,以此实现函数重载。

c语言编译器不会修饰函数名,因此c语言不支持函数重载。


函数重载的例子

以上都是函数重载。


函数重载的坑

虽然一个是缺省参数,一个是正常参数,但参数类型,个数,顺序都一样,无法区分,不能构成函数重载:

虽然构成函数重载,编译器也不会报错。但是这种重载在调用时可能存在调用歧义,比如调用的时候不传参数:

他们具有重载性能,但他们不是重载关系,因为x1和x2的作用域并不同(using只是把命名空间的内容引入全局作用域,但命名空间中函数或变量的实际作用作用域仍然是命名空间):

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

相关文章:

  • 瑞萨RL78/F25 MCU触摸应用开发:从e2studio工程创建到CTSU调试全流程
  • Topaz Video Enhance AI 免费试用一个月,手把手教你用显卡加速把老视频变4K
  • 温州广场路实验中学周边初中课后托管机构排行实测 - 奔跑123
  • 亚马逊平台提交注册关于ISTA 6A type-a标准型的解读
  • 【Perplexity旅游信息查询实战指南】:20年专家亲授3大避坑法则与5步精准提问技巧
  • 基于历史与当代案例的比较分析
  • C++ 类和对象——构造函数
  • 告别pip install torch:手把手教你离线安装PyTorch 1.5.1(含CUDA 9.2配置)
  • 04_ESP32 脉冲宽度调制 (PWM)
  • 告别手动改表!用ArcGIS Pro SDK批量修改属性字段的保姆级教程(附完整C#代码)
  • 通过curl命令直接测试Taotoken聊天补全接口的配置与排错指南
  • 通过Nodejs快速集成Taotoken实现AI对话功能
  • 学术人必藏的Perplexity图书推荐查询技巧,解锁被隐藏的冷门神书与前沿译本
  • 2026 年上海黄金回收服务测评|口碑品牌大盘点 - 奢侈品回收测评
  • 【免费下载】 YOLOv8 源代码(未改动)
  • VPU与NPU协同:智能视觉芯片的架构演进与实战解析
  • 告别Colab限流:手把手教你将Kaggle打造成你的主力免费GPU开发环境(含包管理避坑)
  • 设计师私藏的Perplexity搜索黑箱(仅限内部团队流通):含Figma组件库/Design Token/可访问性规范专属指令集
  • 靠谱省心 2026深圳优质小程序定制服务商推荐 - 软件测评师
  • 终极Zotero Style插件指南:让文献管理从枯燥变高效
  • Nodejs后端服务接入Taotoken多模型API的详细步骤
  • 用 content-length 长度确定后端返回的是不是真实的文件流
  • 3分钟上手Zotero翻译插件:零基础搞定外文文献阅读
  • 2026年COD预制试剂非标定制服务解析:技术实力派生产厂家与品牌选择 - 品牌推荐大师1
  • Winhance:让Windows系统优化变得简单高效的5个实用技巧
  • 【免费下载】 Microsoft Visual C++ Redistributable for Visual Studio 2019 资源文件
  • 2026北京新评定包包回收榜单:三级平台推荐 + 核心区门店布局 - 奢侈品回收测评
  • 【免费下载】 探索三维世界的利器:Qt+OpenGL三维地形显示项目
  • NVIDIA Profile Inspector完整指南:如何快速优化游戏性能并解决兼容性问题
  • Gordon性能优化秘籍:提升Flash运行时效率的10个技巧