[C++程序设计]有默认参数的函数
2014-07-17 11:19
330 查看
实参与形参的结合是从左至右顺序进行的。因此指定默认值的参数必须放在形参表列中的最右端,否
则出错。例如:
void f1(float a,int b=0,int c,char d=′a′); //不正确
void f2(float a,int c,int b=0, char d=′a′); //正确
在调用有默认参数的函数时,实参的个数可以与形参的个数不同,实参未给定的,从形参的默认值得到值
在使用带有默认参数的函数时有两点要注意:
(1) 如果函数的定义在函数调用之前,则应在函数定义中给出默认值。如果函数的定义在函数调用之后,则在函数调用之前需要有函数声明,此时必须 在函数声明中给出默认值,在函数定义时可以不给 出默认值
(2) 一个函数不能既作为重载函数,又作为有默认 参数的函数。因为当调用函数时如果少写一个参数,系统无法判定是利用重载函数还是利用默认参数的函数,出现二义性,系统无法执行。
则出错。例如:
void f1(float a,int b=0,int c,char d=′a′); //不正确
void f2(float a,int c,int b=0, char d=′a′); //正确
在调用有默认参数的函数时,实参的个数可以与形参的个数不同,实参未给定的,从形参的默认值得到值
#include <iostream> using namespace std; int max(int a, int b, int c = 0); int main() { int x = 01, y = -20, z = 40, m; m = max(x, y); cout << " x, y of max is " << m << endl; m = max(x, y, z); cout << " x, y,z of max is " << m << endl; return 0; } int max(int a, int b, int c) { if(b > a) a = b; if(c > a) a = c; return a; }
在使用带有默认参数的函数时有两点要注意:
(1) 如果函数的定义在函数调用之前,则应在函数定义中给出默认值。如果函数的定义在函数调用之后,则在函数调用之前需要有函数声明,此时必须 在函数声明中给出默认值,在函数定义时可以不给 出默认值
(2) 一个函数不能既作为重载函数,又作为有默认 参数的函数。因为当调用函数时如果少写一个参数,系统无法判定是利用重载函数还是利用默认参数的函数,出现二义性,系统无法执行。
相关文章推荐
- C++ 面向对象程序设计上机练习三(有默认参数的函数)
- C/C++笔试系列--默认参数在哪指定?函数声明还是定义?
- C++默认参数与函数重载 注意事项
- 探索c++的函数pow()的实现方法·数学与程序设计的结合(zz)
- 山东理工大学ACM平台题答案 面向对象程序设计上机练习三(有默认参数的函数)
- 走进C++程序世界-----函数相关(全局变量,默认参数,函数重载,内联函数)
- C++ 函数声明中指定,默认参数
- 探索c++的函数pow()的实现方法·数学与程序设计的结合(绝对原创)
- c++函数功能 引用 & 重载 & 默认参数 & 内联
- C++程序设计语言之函数小结
- C++ 函数声明中指定,默认参数
- C++默认参数与函数重载
- C++程序设计实验报告(十三)---用函数完成分段数学函数的求解
- 探索c++的函数pow()的实现方法·数学与程序设计的结合
- C++程序设计语言--第十八章:算法和函数对象
- C++程序设计-第12周函数序设计上机实践项目
- 鸡啄米:C++编程入门系列之二十(C++程序设计必知:数据和函数)
- C++程序设计实验报告(十七)----实现冒泡排序算法,并将之定义为一个函数
- c++作业,带默认参数的成员函数
- 069 - 问,lua程序设计(第四部分)笔记三,c++调用lua函数 - everettjf - C++博客