3. 函数的提高

目录

3. 函数的提高

3.1 函数的默认参数

3.2 函数占位参数

3.3 函数重载 (重要)

相关教程


3.1 函数的默认参数

C++中,函数的形参列表中的形参是可以有默认值的。

语法

返回值类型  函数名  (参数 = 默认值) {}
// 如果没有传入参数,就使用默认值。
// 如果有传入的参数,就使用传入的参数。
// 语法: 返回值类型  函数名(形参 = 默认值)
int func(int a, int b = 20, int c = 30)
{return a + b + c;
}int main() {func(10, 20);cout << func(10) << endl;cout << func(10, 30) << endl;system("pause");return 0;
}
---------------------------------------------------------------
60
70
请按任意键继续. . .

注意1:如果某个位置已经有了默认参数,那么从这个位置往后,从左到右都必须有默认值。

注意2:如果函数声明有默认参数,函数的实现就不能有默认参数。

声明和实现中,只能有一个有默认参数。

3.2 函数占位参数

作用:C++中函数的形参列表里可以有占位参数,用来做占位,调用函数时必须填补该位置。

语法

返回值类型  函数名  (数据类型) {}

现阶段函数的占位参数存在意义不大,但是后面的课程中会有用到该技术。

占位参数,还可以有默认参数。

3.3 函数重载 (重要)

作用:函数名可以相同,提高复用性。(根据函数的参数的不同,在不同情况下调用不同的函数

函数重载满足条件

  • 1. 同一个作用域下。
  • 2. 函数名相同。
  • 3. 函数参数类型不同 或者 个数不同 或者 顺序不同

注意:函数的返回值不可以作为函数重载的条件。

// 函数重载
// 可以让函数名相同,提高复用性
void func(void)
{cout << 1 << endl;
}void func(int a)
{cout << a << endl;
}void func(int a, int b)
{cout << a + b << endl;
}void func(double a, int b)
{cout << "func(double a, int b)" << endl;
}void func(int a, double b)
{cout << "func(int a, double b)" << endl;
}// 函数的返回值不可以作为函数重载的条件
//int func(int a, double b)
//{
//  cout << "func(int a, double b)" << endl;
//}int main() {func();func(10);func(10, 20);func(3.14, 20);func(20, 3.14);system("pause");return 0;
}
-------------------------------------------------------------------
1
10
30
func(double a, int b)
func(int a, double b)
请按任意键继续. . .

注意事项

注意1:引用作为重载条件。

// 函数重载的注意事项
// 1.引用作为重载的条件
void func(int& a)
{cout << "func(int& a)" << endl;
}void func(const int& a)
{cout << "func(const int& a)" << endl;
}int main() {int a = 10;func(a);func(10);system("pause");return 0;
}
---------------------------------------------------------
func(int& a)
func(const int& a)
请按任意键继续. . .

注意2:函数重载碰到函数默认参数。

// 函数重载的注意事项
// 1.引用作为重载的条件
// 2.函数重载碰到默认参数
void func(int a)
{cout << "func(int a)" << endl;
}void func(int a, int b = 20)
{cout << "func(int a, int b = 20)" << endl;
}int main() {int a = 10;func(a);            // 碰到默认参数产生歧义,需要避免。这句编译器会报错//func(10);system("pause");return 0;
}

相关教程

  • 开发环境搭建:Visual Studio 2019 C++开发环境搭建
  • 推荐视频:https://www.bilibili.com/video/BV1et411b73Z?from=search&seid=4205594350351753444
  • 已投币三连,非常细致的视频教程,感谢up主。

c/c++教程 - 2.3 函数的提高 函数的形参列表默认值 占位参数 函数重载相关推荐

  1. c语言中函数形参值改变了,相应的实参值是否改变,C语言中,如何利用函数和指针变量通过形参变量的值改变实参变量的值...

    必备知识:c语言中的函数调用和指针变量的相关知识 众所周知,函数是C语言中一个十分重要的模块,因为函数的存在,使得C语言的可读性.可维护性.可移植性大大提高.因此,想要学好C语言,必须要学好函数.函数 ...

  2. php中函数的默认值,参数的顺序

    形式参数可以在定义时候给参数赋一个默认值,默认值不能是一个变量,可以是常量,当调用函数时,如果没有参数,函数就会按照默认值处理,如果传递了参数,就按照传递的参数处理 <?phpheader('c ...

  3. C语言函数形参添加默认值

    如果不是机缘巧合,当年转到C++之后,恐怕很难再有机会还写C的代码.面向对象在现代coding中,就像圣经一样,在码农的口中自带光环,code起来左一个语法糖,右一个范式编程,各种眼花缭乱.主业要是还 ...

  4. php函数形参,PHP中的函数形参的默认值

    摘要: 本文为PHP函数形参默认值笔记 简单介绍形参可以设定默认值.形式为:$形参名 = 某值. 设定默认值的形参,只能放在没有设定默认值的形参的后面(右边). 设定了默认值的形参对应的实参可以不提供 ...

  5. python3_函数_形参调用方式 / 不定长参数 / 函数返回值 / 变量作用域 / 匿名函数 / 递归调用 / 函数式编程 / 高阶函数 / gobal和nonlocal关键字 / 内置函数

    1.形参的调用方式 1. 位置参数调用 2. 关键词参数调用 原则: 关键词参数调用不能写在位置参数调用的前边 def test1(name, age):print("name:" ...

  6. Vue——props默认值为工厂函数时[工厂函数:undefined]问题解决方案

    问题描述 methods: {sayHi(){alert('hi');} }, props: {keyword: {default: 'a'},say: {type: Function,default ...

  7. 函数指针声明时的形参列表可以没有

    #include <stdio.h> #include <stdlib.h>typedef void (* PF)();void add(int a,int b,int *re ...

  8. python语法(三)——函数 如何返回多个数组 列表返回值 以及接收方法

    我们使用python开发时,自定义的函数 有时候需要返回多个值,可能是多个数值.字符串也有可能是多个列表,那么如何返回:返回之后 在调用该函数时 又应该如何接收呢? 例如:我定义了一个函数,传入一个u ...

  9. C#调用含有数组类形参和返回值的matlab函数实例

    2015年11月21日  湖北宜昌写图片摘要(选填填写图片摘要(选填)

最新文章

  1. Python 还能实现图片去雾?FFA 去雾算法、暗通道去雾算法用起来!(附代码)...
  2. python【数据结构与算法】倍增思想
  3. mac 升级 15.4之后,部分软件无法打开解决
  4. [GO]append的扩容
  5. vscode快捷键:多行同时输入
  6. 怎么用计算机打出来自天堂的恶魔呢,来自天堂的恶魔
  7. spss数据分析软件
  8. 计算机是uefi启动 不能装win7,uefi+gpt分区安装win7图文教程 uefi加gpt模式安装win7 64位的方法...
  9. #从零开始学HCIA起步
  10. 【vue】mint-ui中navbar下划线不显示的问题
  11. js之原生js轮盘抽奖实例分析(幸运大转盘抽奖)
  12. 第2次作业:微信案例分析
  13. 怎么用PS做出划痕的效果?
  14. 一文总结 Google I/O 2023
  15. linux cp acp,Windows上的字符转换之CP_ACP和CP_OEMCP
  16. c语言 自锁按键,具有自锁功能的按键结构的制作方法
  17. [Android][设置最小(大)宽高]
  18. 【参观微软分享有礼】微软拥抱开源
  19. mac苹果灯亮出风口烫开不了机解决办法
  20. 数据库 主键 外键 唯一键区别

热门文章

  1. licode学习之编译篇--3
  2. 操作系统--进程管理1--单个CPU情况
  3. Aspectj切入点语法定义
  4. Emacs 安装与体验
  5. Java程序实现密钥库的维护
  6. 寄存器和立即数和内存单元
  7. 【Java从0到架构师】Spring - 整合 MyBatis
  8. 【南邮操作系统实验】页面置换算法(FIFO、LRU、OPT) Python 版
  9. 数据分析汇报用这个神器,让他们弃用了Excel和PPT
  10. 数据分析避坑必读:让人怀疑人生的七大悖论