【c++】函数高级

1、函数的默认参数

(1)如果我们自己传入数据。就用传入数据,如果没有,则用默认值

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

(3)如果函数声明有默认参数,则函数实现不能有默认参数

void func(int a,int b,int c=3)
{
	cout << "a=" << a << endl;
	cout << "b=" << b << endl;
	cout << "c=" << c << endl;
}
int main()
{
	func(1, 2);        //输出结果为a=1 b=2 c=3
	return 0;
 }

2、占位参数

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

注意:占位参数要传入数值

//有占位参数的函数,也可以有普通参数、默认参数
void func2(int,int b,int a=30)
{
	cout << "this is func2";
}
int main()
{
	func2(10,20);    //占位参数也要传入数值
	return 0;
 }

3、函数重载

(1)函数重载满足条件:
        a同一个作用域下
        b函数名称相同
        c函数参数类型不同 或者 个数不同 或者 顺序不同
 ( 函数的返回值不可以作为函数重载的条件)

  (2)注意事项

        a引用作为重载条件,是否加const修饰引用可以作为重载的条件

void func(int& a)        //int a=10,传入a调用
{
	cout << "func(int& a)调用" << endl;
}

void func(const int& a)        //const int b =20,传入b调用,或者直接传入常量20调用
{
	cout << "func(const int& a)调用" << endl;
}

int main()
{
	int a = 10;
	const int b = 20;
	func(a);
	func(b);
	func(20);
	return 0;
 }

        b函数重载碰到默认参数(当函数重载碰到默认参数,出现二义性,报错,尽量避免写函数重载又加默认参数的情况)

void func2(int a, int b = 10)
{
	cout << "func2(int a, int b = 10)" << endl;
}
void func2(int a)
{
	cout << "func2(int a)" << endl;
}
int main()
{
	int a = 5;
	func2(a);	//当函数重载碰到默认参数,出现二义性,报错,
                //尽量避免写函数重载又加默认参数的情况
	return 0;
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值