缺省参数(备胎)

1.缺省参数说明

将声明或定义函数时的参数指定一个值(该值即为缺省值)

注:当实参没有指定数值就采用缺省值否则采用实参。

#include <iostream>
#include <assert.h>
using namespace std;
void Func(int a = 0)//在形参后面加个值
{
	cout << a << endl;
}
int main()
{
	Func(); // 没有传参时,使⽤参数的默认值 
	Func(10); // 传参时,使⽤指定的实参 
	return 0;
}

2.缺省参数的分类

全缺省就是全部形参给缺省值

 

 半缺省就是部分形参给缺省值

 

注 :C++规定半缺省参数必须从右往左 依次连续缺省,不能间隔跳跃给缺省值。

 

 

3.应用

例如,在栈构建空间时会动态开辟通常以二的倍速增加一定就会亏损,因此控制空间大小显得尤为重要。

// Stack.h
#include <iostream>
#include <assert.h>
using namespace std;
typedef int STDataType;
typedef struct Stack
{
 STDataType* a;
 int top;
 int capacity;
}ST;
void STInit(ST* ps, int n = 4);
// Stack.cpp
#include"Stack.h"
// 缺省参数不能声明和定义同时给 
void STInit(ST* ps, int n)
{
 assert(ps && n > 0);
 ps->a = (STDataType*)malloc(n * sizeof(STDataType));
 ps->top = 0;
 ps->capacity = n;
}
// test.cpp
#include"Stack.h"
int main()
{
 ST s1;
 STInit(&s1);
 // 确定知道要插⼊1000个数据,初始化时⼀把开好,避免扩容 
 ST s2;
 STInit(&s2, 1000);
 return 0;
}

在初始化中确定知道要插⼊1000个数据,初始化时⼀把开好,避免扩容

注:当文件中声明与定义分开时,缺省参数只等在声明中给缺省值。

因为:在定义中只有在编译的时候才会调用。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值