C++缺省参数的概念是什么
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,这篇文章主要介绍了C++缺省参数的概念是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C++缺省参数的概念是什么文章都会有所收获,下面我们一起来看看吧。一、缺省参数概
千家信息网最后更新 2025年01月20日C++缺省参数的概念是什么
这篇文章主要介绍了C++缺省参数的概念是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C++缺省参数的概念是什么文章都会有所收获,下面我们一起来看看吧。
一、缺省参数概念
缺省参数是声明或定义函数时为函数的参数指定一个默认值。在调用该函数时,如果没有指定实参则采用该默认值,否则使用指定的实参
#includeusing namespace std;void TestFunc(int a = 0)//参数缺省值{ cout << a << endl;}int main(){ TestFunc();//没有指定实参,使用缺省值 TestFunc(10);//指定实参,使用实参 return 0;}
有什么用
比如在 C 语言中有个很苦恼的问题是写栈时,不知道要开多大的空间,之前我们是如果栈为空就先开 4 块空间,之后再以 2 倍走,如果我们明确知道要很大的空间,那么这样就只能一点一点的接近这块空间,就太 low 了。但如果我们使用缺省,明确知道不需要太大时就使用默认的空间大小,明确知道要很大时再传参
#includeusing namespace std;namespace WD{ struct Stack { int* a; int size; int capacity; };}using namespace WD;void StackInit(struct Stack* ps){ ps->a = NULL; ps->capacity = 0; ps->size = 0;}void StackPush(struct Stack* ps, int x){ if(ps->size == ps->capacity) { //ps->capacity *= 2;//err ps->capacity == 0 ? 4 : ps->capacity * 2;//这里就必须写一个三目 }}void StackInitCpp1(struct Stack* ps, int defaultCP){ ps->a = (int*)malloc(sizeof(int) * defaultCP); ps->capacity = 0; ps->size = defaultCP;}void StackInitCpp2(struct Stack* ps, int defaultCP = 4)//ok{ ps->a = (int*)malloc(sizeof(int) * defaultCP); ps->capacity = 0; ps->size = defaultCP;}int main(){ //假设明确知道这里至少需要100个数据到st1 struct Stack st1; StackInitCpp1(&st1, 100); //假设不知道st2里需要多少个数据 ---- 希望开小点 struct Stack st2; StackInitCpp2(&st1);//缺省 return 0;}
二、缺省参数分类
全缺省参数
void TestFunc(int a = 10, int b = 20, int c = 30){ cout << "a = " << a << endl; cout << "b = " << b << endl; cout << "c = " << c << endl; cout << endl;}int main(){ //非常灵活, TestFunc(); TestFunc(1); TestFunc(1, 2); TestFunc(1, 2, 3); //TestFunc(1, , 3);//err,注意它没办法实现b不传,只传a和b,也就是说编译器只能按照顺序传 return 0;}
注意:
全缺省参数只支持顺序传参
半缺省参数
//void TestFunc(int a, int b = 10, /*int f, - err*/ int c = 20);//err,void TestFunc(int a, int b = 10, /*int f, int x = y, -> err*/ int c = 20){cout << "a = " << a << endl;cout << "b = " << b << endl;cout << "c = " << c << endl;cout << endl;}int main(){//TestFunc();//err,至少得传一个,这是根据形参有几个非半缺省参数确定的TestFunc(1);TestFunc(1, 2);TestFunc(1, 2, 3);return 0;}//void TestFunc(int a, int b = 10, /*int f, - err*/ int c = 20);//err,void TestFunc(int a, int b = 10, /*int f, int x = y, -> err*/ int c = 20){ cout << "a = " << a << endl; cout << "b = " << b << endl; cout << "c = " << c << endl; cout << endl;}int main(){ //TestFunc();//err,至少得传一个,这是根据形参有几个非半缺省参数确定的 TestFunc(1); TestFunc(1, 2); TestFunc(1, 2, 3); return 0;}
//a.hvoid TestFunc(int a = 10);//a.cppvoid TestFunc(int a = 20){}
注意:
半缺省参数必须从右往左依次来给出,且不能间隔着给
缺省参数不能在函数声明和定义中同时出现
缺省值必须是常量或者全局变量
C 语言不支持缺省
关于"C++缺省参数的概念是什么"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"C++缺省参数的概念是什么"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
参数
概念
空间
C++
函数
知识
很大
内容
数据
篇文章
语言
顺序
支持
苦恼
也就是
也就是说
价值
全局
办法
变量
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
工资管理系统数据库总结
互联网科技公司怎么注册
全球大学生网络安全研究
石家庄二手服务器在哪买
日照网络安全案件
软件开发免费技术支持
保险公司业务数据库
h3c服务器连接存储
基岩版1.17生存服务器ip
苹果服务器连接不上修复了吗
华为没有云服务器配置
山西大屏互动触摸软件开发公司
停电期间网络安全注意事项
忘却录音软件开发
ps5港服绝地求生服务器满载
中神网络安全专业
曲靖网络安全应急中心
软件开发是流水线么
学计算机网络技术基本特长
html 缓存数据库
数字媒体艺术计算机网络技术
Tp软件开发工程师工资
免费医药数据库
服务器添加管理权限cmd
数据库应用字母
软件开发报价行业标准
昆山立讯软件开发工程师
杭州租赁软件开发
软件开发过程6
郑州学网络技术什么学校好