【C++基础之十四】函数的缺省参数

21 篇文章 49 订阅

可能会有这么一个函数,在大部分的情况下,我们不用给它传递参数,但在某些特殊情况下,我们需要给它传递参数,那怎么办呢?

简单啊,写两个一样的方法,一个带参,一个不带参。。。

这样也太没水准了。来点高端的。。。函参的缺省!

函数的缺省,在编译的时候,默认参数由编译器自动插入。这里主要要注意两点。


1.缺省值只能出现在声明中,而不能出现在定义里

void foo(int a=0);//这是声明

void foo(int a)//这是定义
{
	cout<<a<<endl;
}

int _tmain(int argc, _TCHAR* argv[])
{
	foo();//无参调用
	foo(1);//带参调用
	return 0;
}

2.多个参数时,参数只能由后往前缺省。

正确:

void foo(int a,int b,int c=0);

void foo(int a,int b,int c)
{
	cout<<a<<endl;
	cout<<b<<endl;
	cout<<c<<endl;
}

int _tmain(int argc, _TCHAR* argv[])
{
	foo(0,1);
	foo(0,1,2);
	return 0;
}
错误:产生二义性,编译时出错,提示error C2548: “foo”: 缺少参数 3 的默认参数

void foo(int a,int b=0,int c);

void foo(int a,int b,int c)
{
	cout<<a<<endl;
	cout<<b<<endl;
	cout<<c<<endl;
}

int _tmain(int argc, _TCHAR* argv[])
{
	foo(0,1);
	foo(0,1,2);
	return 0;
}

这个比较简单,就这样吧。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值