c/c++教程 - 2.3 函数的提高 函数的形参列表默认值 占位参数 函数重载
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 函数的提高 函数的形参列表默认值 占位参数 函数重载相关推荐
- c语言中函数形参值改变了,相应的实参值是否改变,C语言中,如何利用函数和指针变量通过形参变量的值改变实参变量的值...
必备知识:c语言中的函数调用和指针变量的相关知识 众所周知,函数是C语言中一个十分重要的模块,因为函数的存在,使得C语言的可读性.可维护性.可移植性大大提高.因此,想要学好C语言,必须要学好函数.函数 ...
- php中函数的默认值,参数的顺序
形式参数可以在定义时候给参数赋一个默认值,默认值不能是一个变量,可以是常量,当调用函数时,如果没有参数,函数就会按照默认值处理,如果传递了参数,就按照传递的参数处理 <?phpheader('c ...
- C语言函数形参添加默认值
如果不是机缘巧合,当年转到C++之后,恐怕很难再有机会还写C的代码.面向对象在现代coding中,就像圣经一样,在码农的口中自带光环,code起来左一个语法糖,右一个范式编程,各种眼花缭乱.主业要是还 ...
- php函数形参,PHP中的函数形参的默认值
摘要: 本文为PHP函数形参默认值笔记 简单介绍形参可以设定默认值.形式为:$形参名 = 某值. 设定默认值的形参,只能放在没有设定默认值的形参的后面(右边). 设定了默认值的形参对应的实参可以不提供 ...
- python3_函数_形参调用方式 / 不定长参数 / 函数返回值 / 变量作用域 / 匿名函数 / 递归调用 / 函数式编程 / 高阶函数 / gobal和nonlocal关键字 / 内置函数
1.形参的调用方式 1. 位置参数调用 2. 关键词参数调用 原则: 关键词参数调用不能写在位置参数调用的前边 def test1(name, age):print("name:" ...
- Vue——props默认值为工厂函数时[工厂函数:undefined]问题解决方案
问题描述 methods: {sayHi(){alert('hi');} }, props: {keyword: {default: 'a'},say: {type: Function,default ...
- 函数指针声明时的形参列表可以没有
#include <stdio.h> #include <stdlib.h>typedef void (* PF)();void add(int a,int b,int *re ...
- python语法(三)——函数 如何返回多个数组 列表返回值 以及接收方法
我们使用python开发时,自定义的函数 有时候需要返回多个值,可能是多个数值.字符串也有可能是多个列表,那么如何返回:返回之后 在调用该函数时 又应该如何接收呢? 例如:我定义了一个函数,传入一个u ...
- C#调用含有数组类形参和返回值的matlab函数实例
2015年11月21日 湖北宜昌写图片摘要(选填填写图片摘要(选填)
最新文章
- Python 还能实现图片去雾?FFA 去雾算法、暗通道去雾算法用起来!(附代码)...
- python【数据结构与算法】倍增思想
- mac 升级 15.4之后,部分软件无法打开解决
- [GO]append的扩容
- vscode快捷键:多行同时输入
- 怎么用计算机打出来自天堂的恶魔呢,来自天堂的恶魔
- spss数据分析软件
- 计算机是uefi启动 不能装win7,uefi+gpt分区安装win7图文教程 uefi加gpt模式安装win7 64位的方法...
- #从零开始学HCIA起步
- 【vue】mint-ui中navbar下划线不显示的问题
- js之原生js轮盘抽奖实例分析(幸运大转盘抽奖)
- 第2次作业:微信案例分析
- 怎么用PS做出划痕的效果?
- 一文总结 Google I/O 2023
- linux cp acp,Windows上的字符转换之CP_ACP和CP_OEMCP
- c语言 自锁按键,具有自锁功能的按键结构的制作方法
- [Android][设置最小(大)宽高]
- 【参观微软分享有礼】微软拥抱开源
- mac苹果灯亮出风口烫开不了机解决办法
- 数据库 主键 外键 唯一键区别