函数的缺省参数
来源:互联网 发布:java邮箱验证码的实现 编辑:程序博客网 时间:2024/05/21 22:30
c++中只能定义一次缺省值,即原型说明时定义了缺省值,后面的函数定义不能有缺省值,且缺省参数都必须是从右到左定义,调用时实参对形参的初始化必须是从左向右的比如:函数声明
f(int i=5);
定义了缺省值。后面对f的函数定义时就不需要提供缺省值了:f(int i)
{
cout<<i<<endl;
}即函数定义不能写成:
f(int i=5)
{
cout<<i<<endl;
}为什么是这样呢?一方面是因为编译器在编译时遇到f的函数调用只去检查函数声明,至于函数有没有实现则是链接阶段的事,如果没有函数实现则链接出错,编译仍正确,只要函数声明与函数调用一致!另一方面是因为在函数定义时如果也允许提缺省值,那么如果函数定义的缺省值与函数声明的缺省值不一样怎么办?比如f声明时缺省值为5,定义时缺省值为6,这就会出现歧义。C++在声明函数原型时,可为一个或多个参数指定缺省参数值,以后调用此函数,若省略其中某一参数,C++自动地以缺省值作为相应参数的值。例如函数原型说明为: int special(int x=5,float y=5.3); 当进行函数调用时,可以有以下几种形式: 1) special(100,79.8); // x=100,y=79.8 2) special(25); // x=25,y=5.3 3) special(); // x=5,y=5.3
说明: 1.只能在声明时设置默认参数 2.缺省参数都必须是从右到左定义 如:int fun(int i,int j=5,int k);//错误,k未使用 3.缺省参数都必须是从右到左定义,调用时实参对形参的初始化必须是从左向右的//缺省参数
#include <iostream.h>void func(int x,int y=10,int z=20);void main(){ func(1,2,3); func(1,2); func(1);}void func(int x,int y,int z){ cout<<x<<' '<<y<<' '<<z<<endl;}
0 0
- 函数的缺省参数
- 函数的缺省参数
- 函数的缺省参数
- 函数的缺省参数
- 构造函数的参数缺省
- php函数的缺省参数
- C++ 函数的缺省参数
- C++缺省参数的函数
- python 函数的缺省参数的注意事项
- C++ 虚函数的缺省参数问题
- Thinking in C++ -- 函数的缺省参数
- 虚函数继承的默认缺省参数
- 函数的作用域和缺省参数
- c++函数缺省参数
- Cpp_函数缺省参数
- c++ 函数缺省参数
- C++ 函数缺省参数
- C++之缺省参数的构造函数、缺省的构造函数及缺省的析构函数
- C# WinForm TreeView 动态绑定数据库例如:省、市、区县 三级
- CentoS6升级git
- 有关ListView优化机制及滑动时数据错乱问题的讨论
- SVN服务器搭建
- sql之left join、right join、inner join的区别
- 函数的缺省参数
- 原码, 反码, 补码 详解
- Android_开源框架_AndroidUniversalImageLoader网络图片加载
- PHP UTF-8和Unicode编号互转(多语言)
- linux iptables icmp重定向redirect
- 。。。
- Binary Tree Level Order Traversal
- 你对软件开发中迭代的含义的理解
- Android Fragment应用实战,使用碎片向ActivityGroup说再见