C++ 函数默认值

C++ 中允许函数的参数列表指定默认值,而且这个 默认值必须 从右向左依次指定,不能间断 ,一般在函数的声明中去指定,在函数的定义中指定编译可能不会报错,但多数情况下是毫无意义的操作。
多个形参指定默认值的规则:
从右向左依次指定中间不能间断,如果函数声明和定义分开写, 一般在函数的声明处指定默认值, 如果有多个声明,按离函数最近的作用域声明指定默认值,如果一个作用域俩声明报重定义默认参数错误。
#include<iostream>
#include<string>
using namespace std;
void fun(int a = 1);
void fun2(int a = 1, int b = 2);
void fun3(int a, int b = 1);
void fun4(int a = 1);
int main() {
	fun(10);    //fun    10
	fun();      //fun    1	    不传实参 形参取默认值
	fun2();     //fun2    1   2
	fun2(2);    //fun2    2   2
	fun3(3);    //fun3    3   1
	fun4();     //fun4    1

    //重新声明fun4
	void fun4(int a = 9);

	fun4();     // fun4    9	按最近的声明指定默认值

	return 0;
}
void fun(int a) {
	cout << __FUNCTION__ << "   " << a << endl;
}
void fun2(int a, int b) {
	cout << __FUNCTION__ << "   " << a << "   " << b << endl;
}
void fun3(int a, int b) {
	cout << __FUNCTION__ << "   " << a << "   " << b << endl;
}
void fun4(int a) {
	cout << __FUNCTION__ << "   " << a << endl;
}

在函数的定义中指定编译可能不会报错,但多数情况下是毫无意义的操作,如果在声明和定义中都给了默认值就会报重定义默认参数错误。

#include<iostream>
using namespace std;
void fun4(int a = 1);

int main(){
    fun4();
}
void fun4(int a=1) {
	cout << __FUNCTION__ << "   " << a << endl;
}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值