C++学习笔记14——默认实参
来源:互联网 发布:和谐万维软件 编辑:程序博客网 时间:2024/06/05 06:31
1,定义方式
void show_info1(unsigned int age, double height = 1.73, double length = 16);void show_info2(unsigned int age, double height, double length);图中,show_info1()中的参数列表中后两个参数提供了默认实参,当调用show_info1()而不对这两个形参提供实参时,则使用默认实参。
show_info2()则为无默认实参的版本。
2,默认实参在参数列表中的位置
默认实参只能用来替换函数调用缺少的尾部实参。
这要求两点:
这要求两点:
(1)在声明带有默认实参的函数时,一定要将带有默认实参的形参安排在参数列表的尾部;
(2)在调用带有默认实参的函数时,一旦从某个位置开始使用了默认实参,则之后的每个形参都不要再传递实参,而使用默认实参,否则报错。
比如上面定义的show_info1(),如果在调用时使用
show_info(27,,18);
这样的表达式,希望age和length使用我们传递的实参,而height使用默认实参,则肯定会报错:
error C2059: 语法错误 : “,”
正确的调用格式是:
show_info(27);show_info(27,1.80);show_info(27,1.80,18);
3,声明与定义
在声明或者定义中指定默认实参皆可,但要么在声明中指定,要么在定义中指定,而不能两者都指定,否则报错:
error C2572: “show_info2”: 重定义默认参数
由于我们通常是将函数声明放在头文件中,所以应当在头文件中指定默认实参,这样在每个包含了该头文件的文件中调用该函数都能使用默认实参;
但是,如果是在函数定义中指定默认实参,由于定义放在.cpp文件中,而.cpp文件是不会被包含的,所以只在当前文件中调用该函数时可用默认实参,而在其他包含头文件的文件中调用该函数都不能使用默认实参;
对于声明与定义都放在同一个.cpp文件中的情况,同样只能在一个地方指定默认实参。由于该函数只能在本文件中使用,所以当时也只能在本文件中使用默认实参。
0 0
- C++学习笔记14——默认实参
- C++ Template学习笔记之函数模板(3)——模板实参推演
- C++ Template学习笔记之函数模板(3)——模板实参推演
- C++学习笔记58——模板实参推断
- 【c++primer——15】面向对象编程01——虚函数与默认实参
- C++ Template学习笔记之函数模板(4)——显式模板实参
- C++ Template学习笔记之函数模板(4)——显式模板实参
- 【C++】学习笔记四十一——默认参数
- C语言学习笔记(2)形参和实参
- [C++] 关于函数的默认实参
- C++Primer-虚函数与默认实参
- 默认实参
- 默认实参
- 默认实参
- 默认实参
- 默认实参
- 默认实参
- 默认实参
- BZOJ 1517 [POI2006]Met 贪心
- 设计模式 - 工厂模式
- 十道海量数据处理面试题与十个方法大总结
- OpenCV—使用积分图像统计像素
- python中__init__()作用
- C++学习笔记14——默认实参
- 斯坦福iOS7 2013-2014秋Assignment 6的一种答案 #6
- 内部排序(java实现)
- 递归遍历文件夹中的全部文件
- 软件测试面试相关问题
- 接口练习
- 随手笔记2
- linux文件系统 硬链接和软连接(符号连接)
- Google新技术AMP能让网页瞬间加载