我是靠谱客的博主 含蓄小刺猬,这篇文章主要介绍c++默认参数、占位参数、函数重载,现在分享给大家,希望可以做个参考。

目录

函数默认参数

函数占位参数

函数重载

函数重载注意事项


函数默认参数

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

语法:返回值类型 函数名 (参数 = 默认值){ }

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream> using namespace std; //函数的默认参数 //如果我们自己传入了数据,就用自己的数据,如果没有,那么就用默认值 //语法: 返回值类型 函数名 (形参 = 默认值){ } int func(int a, int b =20, int c=30) { return a + b + c; } //注意事项: //1、如果某个位置已经有了默认参数,那么从这个位置往后,从左到右都必须有默认参数 //int func2(int a = 10, int b, int c, int d) //{ // return a + b + c ; //} //2、如果函数声明有默认参数,函数实现就不能有默认参数 //声明和实现只能有一个有默认参数 int func2(int a = 10, int b = 10); int func2(int a, int b) { return a + b; } int func3(int a , int b = 10); int func3(int a =10, int b) { return a + b; } int main() { func(10); cout << func(10,30) << endl; cout << func2() << endl; cout << func3() << endl; } //执行结果 70 20 20

重复两个注意事项:

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

2、函数声明和函数实现只能有一个有默认参数

函数占位参数

c++中函数的形参列表里面可以有占位参数,用来做占位,调用函数时必须填充该位置

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

复制代码
1
2
3
4
5
6
7
8
9
10
11
#include <iostream> using namespace std; //占位参数 void func(int a , int = 0) { cout << "this is a func" << endl; } int main() { func(10, 10); }

c++中占位参数的意义:

1、占位参数与默认参数结合起来使用,可以做到兼容旧版本代码,提高代码的规范性

2、可以以小的改动,进行代码移植等

函数重载

作用:函数名可以相同,提高复用性

函数重载满足条件:

1、同一个作用域下

2、函数名称相同

3、函数参数类型不同 或者 个数不同 或者 顺序不同

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

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream> using namespace std; //函数重载 作用:提高复用性 //函数重载的满足条件 //1、在同一个作用域下 //2、函数名称相同 //3、函数参数类型不同,或者个数不同,或者顺序不同 void func() { cout << "function 调用" << endl; } void func(int a) { cout << "func(a) 调用" << endl; } void func(double b) { cout << "func(b) 调用" << endl; } void func(int a, int b) { cout << "func(int,int) 调用" << endl; } void func(int a,double b) { cout << "func(int,double) 调用" << endl; } //函数返回值不能作为函数重载的条件 //int func(int a, double b) //{ // cout << "func(int,double) 调用" << endl; //} int main() { func(3.14); func(1,4); func(10, 3.14); return 0; } //执行结果 func(b) 调用 func(int,int) 调用 func(int,double) 调用

函数重载注意事项

1、引用作为重载条件

2、函数重载碰到函数默认参数

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream> using namespace std; //1、引用作为函数重载的条件 void fun(int& a) //int &a = 10; 表示方法是不合法的 { cout << "func(int &a)" << endl; } void fun(const int &a) { cout << "func(const int&a)"<< endl; } //2、函数重载碰到默认参数 void fun2(int a,int b = 10) { cout << "fun2的调用1"<< endl; } void fun2(int a) { cout << "fun2的调用2"<< endl; } int main() { int a = 10; fun(a); //调用无const fun(10); //调用有const //fun2(10); 当函数重载碰到默认参数,出现二义性,尽量避免这种情况 return 0; } //执行结果 func(int &a) func(const int&a)

最后

以上就是含蓄小刺猬最近收集整理的关于c++默认参数、占位参数、函数重载的全部内容,更多相关c++默认参数、占位参数、函数重载内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(78)

评论列表共有 0 条评论

立即
投稿
返回
顶部