当前位置 : 主页 > 编程语言 > c语言 >

c++核心编程—函数提高

来源:互联网 收集:自由互联 发布时间:2023-09-06
一、函数默认参数 在c++中,函数的形参列表的形参可以是有默认值的 语法: 返回值类型 函数名(参数 = 默认值...) { }; 示例: //无默认参数int func1(int a,int b) {return a + b;}//有默认参数in

一、函数默认参数

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

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


示例:

//无默认参数
int  func1(int a,int b) {
	return a + b;
}

//有默认参数
int  func2(int a, int b = 10) {
	return a + b;
}


int main() {
	
	int a = 20;
	int b = 30;
	//调用无默认
	cout << func1(a,b) << endl;

	//调用有默认
	cout << func2(a) << endl;
	cout << func2(a,b) << endl;



	system("pause");
	return 0;
}

c++核心编程—函数提高_c++


注意事项:

1、如果某个位置有了默认参数,那么这个位置之后的形参都需要有默认值

c++核心编程—函数提高_函数重载_02


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

c++核心编程—函数提高_函数进阶_03

二、函数占位参数

C++中函数的形参列表可以有占位参数,用于占位,调用函数时,必须补全

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

示例:

c++核心编程—函数提高_函数重载_04

c++核心编程—函数提高_函数重载_05

注意事项:

1、占位参数,可以有默认参数

2、可以看见占位参数可以传递,但是无法使用,现阶段意义不大,后续深入学习会用到。


三、函数重载

1、重载概述

作用:使函数名可以相同


满足条件:

1、同一个作用域下

2、函数名称相同

3、函数的参数列表需要不相同,可以是类型不同,或者个数不同,或者顺序不同

示例:

void func() {
	cout << "func()调用" << endl;
}
//重载1
void func(int a,int b) {
	cout << "func(int a,int b)调用" << endl;
}
//重载2
void func(double a, int b) {
	cout << "func(double a, int b)调用" << endl;
}
//重载3
void func(int a,double b) {
	cout << "func(int a,double b)调用" << endl;
}



int main() {
	 
	int a = 10;
	int b = 20;
	double c = 3.14;
	//调用原函数
	func();
	//个数不同
	func(a,b);
	//顺序不同
	func(a,b);
	//类型不同
	func(a,c);

	system("pause");
	return 0;
}

c++核心编程—函数提高_c++_06


注意事项:

1、函数的返回值不可作为函数重载的条件

c++核心编程—函数提高_函数进阶_07

2、重载注意事项

1、引用作为重载对象

c++核心编程—函数提高_函数进阶_08


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

当函数重载碰到默认参数,出现二义性,报错,尽量避免这种情况

c++核心编程—函数提高_c++_09


喜欢就点赞收藏吧~

网友评论