ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

《C++primer》第五版笔记:默认实参

2022-01-29 11:33:49  阅读:173  来源: 互联网

标签:sz string 形参 screen 默认 C++ 实参 第五版


具体参考原书P211开始

目录

定义

使用默认实参调用函数

默认实参声明

默认实参初始值

定义

某些函数有这样一种形参,在函数的多次调用中它们都被赋予相同的值,此时,我们把这个反复出现的值称为函数的默认实参。

举个栗子:

typedef string::size_type sz;
string screen(sz ht=24,sz wid=80,char backgrnd=' ');

需要注意的是,一旦某个形参被赋予了默认值,它后面的形参都必须有默认值。

使用默认实参调用函数

如果我们要使用默认实参,只要在调用函数的时候省略该实参就行了。

例如:

string window;
window=screen(66);

函数调用实参按照位置解析,默认实参负责填补调用缺少的尾部实参,例如,我们要覆盖backgrnd的默认值,我们必须为ht和wid提供实参。

默认实参声明

对于函数的声明,通常的习惯是将其放在头文件中,并且每个函数只声明一次,但是多次声明同一个函数也是合法的。不过有一点需要注意,在给定的作用域中一个形参只能被赋予一次默认形参,举个栗子:

//前两个形参没有默认参数
string screen(sz,sz,char=' ');
//不能修改一个已经存在的默认值
string screen(sz,sz,char='*');
//但是可以添加默认实参
string screen(sz=24,sz=80,char);

默认实参初始值

局部变量不能作为默认实参。除此之外,只要表达式的类型能转换成形参所需的类型,该表达式就能作为默认实参:栗子在P212P21

标签:sz,string,形参,screen,默认,C++,实参,第五版
来源: https://blog.csdn.net/weixin_46266058/article/details/122740740

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有