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

C++入门-day02

引言:在上一节中我们接触了C++中的命名空间,学会了C++中的标准输出流。这一节,我标题一们讲讲缺省、重载。

 一、缺省参数

在C++中,给函数的形参默认给一个值就是缺省参数,你可能会比较懵逼,下面看一段代码。 

 

 正常我们在调用函数时候,我们需要带上参数,不然就是随机值,很不友好,这时候缺省参数就来了。

 

这就是有缺省参数的函数。 

如果我们在调用这个函数的时候,什么都不传,它就会用给定的0,0作为a和b的值 

  •  全缺省

        所有参数都给定初值,就像上面sum函数一样

  •  半缺省

        形参只有部分给初值,注意只能从右往左缺省。

 

这个是可以的

 

这样不行!

二、函数重载 

学过java的,应该对这个非常熟悉,所谓函数重载,就是函数方法名相同,但参数不同(类型、个数、顺序(不同类型的顺序))。

如果仅仅返回值不同,不能构成重载。 

这两个构成重载 

 你可能会问,问什么呢?它是怎样实现重载的呢?

首先我们要了解一个C\C++程序在编译链接过程中要经历什么。

我们知道在汇编过程中,会形成符号表,对应每个函数,也就是这个符号表,使得C只能不能接收重载,是因为它在编译过程中只会保留函数名和地址来确定一个函数。而如果遇到重名的时候,链接会报错。

 

你看,C中函数生成符号表时命名是 _+函数名,这注定了不能重载。

而C++中,符号表在函数名前会有一个前缀 _Z+函数字符个数+函数名+形参首元素字母

例如:上面的sum(int a,int b,int c)  表示为_z3sumiii

而sum(char a,char b)  表示为 _z3sumcc  

http://www.lryc.cn/news/183920.html

相关文章:

  • 模板方法模式,基于继承实现的简单的设计模式(设计模式与开发实践 P11)
  • php实战案例记录(16)php://input输入流
  • cad图纸如何防止盗图(一个的制造设计型企业如何保护设计图纸文件)
  • Windows11 安全中心页面不可用问题(无法打开病毒和威胁防护)解决方案汇总(图文介绍版)
  • 1329: 【C2】【排序】奖学金
  • 解决dockerfile创建镜像时pip install报错的bug
  • 算法题:分发饼干
  • WebSocket编程golang
  • PHP之redis 和 memache面试题
  • java socket实现代理Android App
  • Nacos与Eureka的区别
  • 浅谈Rob Pike的五条编程规范
  • LeetCode 377.组合总和IV 可解决一步爬m个台阶到n阶楼顶问题( 完全背包 + 排列数)
  • C中volatile总结
  • asp.net班级管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio
  • 【Pytorch笔记】6.Transforms
  • nodejs+vue临沂特色产品销售平台elementui
  • 机器学习必修课 - 使用管道 Pipeline
  • WEB各类常用测试工具
  • Naive UI 文档地址
  • 在CentOS7系统中安装MySQL5.7
  • R语言通过接口获取网上数据平台的免费数据
  • 【Docker内容大集合】Docker从认识到实践再到底层原理大汇总
  • 算法题:摆动序列
  • 复习 --- QT服务器客户端
  • Godot 官方2D游戏笔记(1):导入动画资源和添加节点
  • leetcode 热题 100
  • Ae 效果:CC Lens
  • 【Redis】基础数据结构-quicklist
  • QT 实现服务器客户端搭建