引用参数如何设缺省值(默认值)(C++)
最近在C++封装redis的时候,遇到个引用形参如何缺省的问题,看了C++ prime木有讲, 百度也没看到类似的情况。不过想起之前看过人家的代码有类似的情况。经过一顿骚操作后,成功了。
不过有个前提条件就是缺省的引用形参必须是要const修饰,也就是说只能读取,不能修改。
例子:
//测试类
class A {public:int a = 3;
};//函数声明
void fun(const int& a,const int& b = 1,const string& c = "2",const A& d = A());//函数定义
void fun(const int& a,const int& b,const string& c,const A& d) {cout << a << " " << b << " " << c << " " << d.a;
}int main() {fun(0);return 0;
}
out:
0 1 2 3
(测试环境:gcc 8.1,vs2015)
函数的前向声明可要可不要,但是缺省值只能在声明或者定义两者中的一处填写,不然会报重复定义的错误。
但是还没有弄清形参缺省值原理是如何实现的。看了汇编的大概情况,是直接将缺省值入栈。大概是编译的时候,会计算出是否存在形参缺省吧。
如有清楚的大佬,麻烦讲解一下~
引用参数如何设缺省值(默认值)(C++)相关推荐
- java布尔值默认值是_Java中的布尔值和布尔值的默认值
Java中boolean(原始)和boolean(原始包装器)的默认值是什么? Boolean(对象)的默认值为null. Boolean(原始)的默认值为false. 请添加官方源链接 任何Obje ...
- 函数参数缺省值/默认值
一.基本概念 缺省值又叫默认值,指函数形参有默认值. 有缺省值的情况下,可以不写实参就调用函数. 例: void fun(int a = 12); 二.全部指定与部分指定 全部指定即形参全部都有默认值 ...
- jmeter存储http请求返回参数_Jmeter接口测试之HTTP请求默认值(八)
原标题:Jmeter接口测试之HTTP请求默认值(八) 不管是在UI级别的自动化测试还是在接口级别的自动化测试中,对公共数据数据的分离都是一种趋势,或者某种程度来说,这是自动化测试中必须要掌握的一种能 ...
- java默认值_java 基本数据类型初始值(默认值)
1.int类型定义的数组,初始化默认是0 2.String类型定义的数组,默认值是null 3.char类型定义的数组,默认值是0对应的字符 4.double类型定义的数组,默认值是0.0 5.flo ...
- python xgboost参数_Python中的XGBoost XGBClassifier默认值
这不是在xgboost中设置参数的方式.您可以将参数网格传递到训练函数中,例如xgboost的train或sklearn的GridSearchCV,也可以使用XGBClassifier的set_par ...
- shell 获取值 默认值
default=0 PAGE_PV=`cat a.log|awk '{print $1}'` PAGE_PV=${PAGE_PV:-${defaut}} 转载于:https://blog.51cto. ...
- 【ES6 教程】第一章 新的ES6语法04—如何设置函数参数的默认值
英文 | https://www.javascripttutorial.net 翻译 | 杨小爱 在本节教程中,我们将学习如何在 ES6 中处理 JavaScript 默认参数. TL;DR func ...
- Python中的Optional和带默认值的参数
文章目录 带默认值的参数 Typing.Optional类 Optional[X]等价于Union[X, None] 带默认值的参数 在Python中的类或者函数中,若参数在声明时附带了它的默认值,则 ...
- php中函数的默认值,参数的顺序
形式参数可以在定义时候给参数赋一个默认值,默认值不能是一个变量,可以是常量,当调用函数时,如果没有参数,函数就会按照默认值处理,如果传递了参数,就按照传递的参数处理 <?phpheader('c ...
- ES6函数参数的解构赋值,以及2种设置参数默认值方法的区别
文章目录 1. 函数参数的解构赋值方式 2. 函数参数解构设置参数默认值 1. 方法1 2. 方法2 3. 总结 1. 函数参数的解构赋值方式 下面代码中,函数add的参数表面上是一个数组,但在传入参 ...
最新文章
- 【Qt】QtCreator中自动补全注释
- Oracle与JCP执行委员会分享了他们的Java EE策略
- APUE读书笔记-12线程控制-04同步属性
- C++下简单的socket编程
- ci获取当前url链接的分组,控制器,方法
- k8s kubesphere启用可插拔组件(安装前、后均可)
- Spark源码分析之DAGScheduler以及stage的划分
- python股票交易微信提醒_python实现秒杀商品的微信自动提醒功能(代码详解)
- RedisTemplate 常用方法、序列化方式、基于 Redis 实现分布式锁
- 基于MicroPython实现ESP32+SSD1306的小恐龙游戏
- 网易有道java面试题,网易有道研发类笔试题
- 关于 用git clone 命令时报错RPC failed; curl 56 Recv failure....’ 的解决办法
- Python之禅——个人翻译
- hive 创建外部表
- Activation
- 开源问答社区软件Answer
- php代码编辑软件安卓,PHP代码编辑软件|Rapid PHP编辑器 v15.0 最新版
- windows下搭建Vue手脚架
- unable to read local cache ‘C:\\Users\\admin/gensim-data\\information.json‘ during fallback 解决办法
- 5G无线网节能关键技术