缺省参数与函数重载

补充

在讲标题的两个内容之前先插入两个常用函数

cout和cin

cout和C语言中的printf功能相同,不过printf在使用时还要写出数据类型,而cout则能自行判断,这里的<<叫做流插入

注:使用C++函数时需要包含头文件  #include<iostream>,而且需要展开命名空间std,源文件后缀必须是.cpp

cin则是对标的printf函数>>叫做流提取

endl是换行

cout和cin也有他专门控制精度的方式,但是比较复杂,既然c++还是兼容C的,那么我们也可以使用printf和scanf来控制精度

缺省参数

缺省参数实际上就像一个备胎

当调用函数不传参数时,缺省参数就派上用场了

这里的Fun函数如果不传参数,那么就使用0,如果传参,那就用所给的参数

全缺省

就是当我们有多个参数的时候全部都用缺省参数,这个就叫全缺省

注:缺省参数不支持跳着缺省,必须是连续的

半缺省

就是函数一部分给缺省参数

也必须是从右往左连续缺省

注:这里可以传3个参,也可以传1个,但是不能不传参数,因为函数的第一个参数没有缺省值

缺省的应用

在我们写栈的初始化时,当知道要存多少数据时,就可以直接写,当不知道时,传的值太多就会浪费空间,所以这里就要用到缺省参数

注!!!:缺省参数不能在声明和定义同时出现

要是头文件和源文件都有缺省参数,那么运行时就会报错

就是声明和定义不能同时给缺省参数

则是要在声明处给

函数重载

函数重载是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数 或 类型 或 类型顺序)不同,常用来处理功能类似数据类型不同的问题

就是C语言不允许同名函数的存在,C++可以,但是 参数个数 或 类型 或 类型顺序 这三个必须有一个或多个不同

而且是必须在同一个作用域,在不同的命名空间里也不是函数重载了

编译器到底是怎么找到两个同名函数不同之处呢?

C++这里会对函数名作一定的修饰

就像参数都是int类型的函数在函数名后面加上一个ii就表示双int参数,双double则是dd

这样代码运行时也就能快速定位到相应的位置上

接着在linux上写类似的代码

在C语言编译下就是原来的名字,没有多作修饰

C++则是不同

在换个参数不同的函数,描述也会随即改变

函数返回值不同也不能构成重载,虽然他们修饰后的名字不同了

但是这样调用根本看不出调的是哪个函数

这就是函数重载

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值