[C++程序设计]有默认参数的函数

实参与形参的结合是从左至右顺序进行的。因此指定默认值的参数必须放在形参表列中的最右端,否

则出错。例如:

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 #include <iostream>
 2 using namespace std;
 3 
 4 int max(int a, int b, int c = 0);
 5 
 6 int main()
 7 {
 8     int x = 01, y = -20, z = 40, m;
 9     m = max(x, y);
10     cout << " x, y of max is " << m << endl;
11     m = max(x, y, z);
12     cout << " x, y,z of max is " << m << endl;
13     return 0;
14 }
15 
16 int max(int a, int b, int c)
17 {
18     if(b > a) a = b;
19     if(c > a) a = c;
20     return a;
21 }

 

在使用带有默认参数的函数时有两点要注意:

(1) 如果函数的定义在函数调用之前,则应在函数定义中给出默认值。如果函数的定义在函数调用之后,则在函数调用之前需要有函数声明,此时必须 在函数声明中给出默认值,在函数定义时可以不给 出默认值

(2) 一个函数不能既作为重载函数,又作为有默认 参数的函数。因为当调用函数时如果少写一个参数,系统无法判定是利用重载函数还是利用默认参数的函数,出现二义性,系统无法执行。

[C++程序设计]有默认参数的函数,布布扣,bubuko.com

[C++程序设计]有默认参数的函数

上一篇:C++ 11 可变参数模板和 boost::any 实现可变参数函数


下一篇:复习java基础第七天(反射)