C++函数高级部分

本文介绍了C++中的函数默认参数、占位参数及函数重载的概念和使用方法。通过示例代码展示了如何定义和调用带有默认参数的函数,如何使用占位参数以及如何实现函数重载。同时,讨论了函数重载时的注意事项,如引用作为重载条件以及默认参数可能导致的二义性问题。
摘要由CSDN通过智能技术生成

函数默认参数

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

int func1(int a, int b=10, int c=10) {
	return a + b + c;
}
//如果某个位置已有默认参数值,从这个位置往后,都必须有默认参数值
int func2(int a, int b=10, int c=10,int d=10) {
	return a + b + c + d;
}
//函数声明
int func3(int a=10, int b=10);  //如果函数声明有默认参数,函数实现就不能有默认参数(声明和实现只能有一个有默认参数)

int main() {

	cout << func1(10,30) << endl;  //如果自己传入数据就用自己的数据,如果没有传入数据则用形参提供的默认值
	cout << func2(10,20,20) << endl;
	
	system("pause");
	return 0;
}
//函数实现
int func3(int a,int b) {  
	return a + b;
}

函数的占位参数

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

//占位参数
int func4(int a ,int) {
	cout << "this is func" << endl;
	return a;
}
//占位参数也可以有默认参数
int func5(int a,int = 20) {
	cout << "this is func" << endl;
	return a;
}

函数重载

函数重载:函数名可以相同,提高复用性。函数重载条件:1、同一个作用域下 2、函数名相同 3、函数参数类型不同,或者个数不同,或者顺序不同。

//函数重载,可以让函数名相同,提高复用性
//函数重载条件:1、同一个作用域下 2、函数名相同 3、函数参数类型不同,或者个数不同,或者顺序不同
void again() {
	cout << "调用again这个函数" << endl;
}
void again(int a) {
	cout << "调用again(int a)这个函数" << endl;
}
void again(double a) {
	cout << "调用again(double a)这个函数" << endl;
}

int main() {

	again(3.14);

	system("pause");
	return 0;
}

函数重载注意事项

函数重载注意事项:引用作为重载条件。函数重载碰到函数默认参数。

//引用作为函数重载的条件
void repeat(int& a) {       //int &a = 10;  是不合法的
	cout << "调用repeat(int &a)这个函数" << endl;
}
void repeat(const int& a) {     //const int &a = 10;
	cout << "调用repeat(const int &a)这个函数" << endl;
}
//函数重载遇到默认参数
void par(int a) {
	cout << "调用par(int a)这个函数" << endl;
}
void par(int a,int b) {
	cout << "调用par(int a,int b)这个函数" << endl;
}
int main() {

	int a = 10;
	repeat(a);
	repeat(10);

	par(10);     //当函数重载碰到默认参数,出现二义性会报错,尽量避免这些情况
	par(10,20);

	system("pause");
	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烬烬今天学习了吗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值