函数默认参数

本文介绍了C++中的函数默认参数及其使用规则,包括如何声明和调用带默认参数的函数,以及注意事项。同时,讲解了函数的占位参数概念,它允许在不指定参数名的情况下声明函数,并可能带有默认值。此外,讨论了函数重载的作用和条件,强调了参数类型和个数的不同是重载的关键,同时也提醒了在重载中避免使用默认参数可能导致的二义性问题。
摘要由CSDN通过智能技术生成

标题:c++中函数默认参数

1.函数默认值:
1.1
语法:返回值类型 函数名 (参数=默认值)
举例:

int func(int a,int b=20,int c=30)
{
	return a+b+c;
}
int main()
{
	cout<<func(10)<<endl;//输出60
	cout<<func(10,30)<<endl;//输出70
}

若位置上没有数则使用默认值。
1.2
注意事项:
1.2.1
如果某个位置有了默认参数,那么这个位置从左到右都必须要有默认参数 。

void fun1(int a, int b=10);//正确
void fun2(int a, int b=10, int c=20);//正确
void fun3(int a=10int b,int c=20);//这个写法是错误的。

1.2.2
如果函数声明有了默认参数,那么函数实现就不能有默认参数,函数声明和函数实现只能有一个有默认值,否则会产生二义性。

//错误示范:
void fun1(int a=10);//声明
void fun1(int a=10){......}//定义
//正确示范:
void fun2(int a=10);//声明
void fun2(int a){......}//定义
//正确示范:
void fun2(int a);//声明
void fun2(int a=10){......}//定义

2.函数的占位参数
2.1
语法:返回值类型 函数名 (数据类型)
2.2
注意事项:
1.占位参数只有参数类型声明,而没有参数名声明
2.一般情况下,在函数体内部无法使用占位参数
3.占位参数也可以有默认值!
2.3
函数的占位参数有什么意义:
1.为以后程序的扩展留下线索
2.兼容C语言程序中可能出现的不规范写法
3.函数的重载
3.1:
作用:函数名字可以相同,提高复用性
3.2:
需要满足的条件
1.在同一作用域下
2.函数名称相同
3.函数参数类型不同或者个数不同或者顺序不同
注意:函数的返回值类型不可以作为函数重载的条件。比如void fun(int a)不能重载为int fun(int a)
相关正确例子:void fun()、void fun(int a)、void fun(double a);void func(double a,float b)、void func(float a,double a)
3.3坑点:
第一个坑点:引用作为重载的条件

void fun(int &a)
{
     a=10;
     void fun(a);//接收的是一个变量
}
void fun(const int &a)
{
     void fun(10);//接收的是一个常量
}

第二个坑点:重载函数碰到默认参数会产生矛盾

void fun1(int a,int b=10);//设为1号
void fun1(int a);//设为2号

假设我们这样调用函数fun(10),那么就和一号和二号函数都产生矛盾,假设我们换个方式调用fun(10,20),那么就不会产生矛盾。

以上是关于函数默认参数的部分笔记,如果错误欢迎大家指出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值