C++——带默认参数值的函数

函数在声明时可以预先给出默认的形参值,调用时如给出实参,则采用实参值,否则采用预先给出的默认参数值。

int add(int x = 5,int y = 6)
{ return x + y;}
int main()
{
  add(10,20);//10+20
  add(10);//10+6
  add();//5 + 6          
}

默认参数值的说明次序

有默认参数的形参必须在形参列表的最后,也就是说默认参数值的右面不能有无默认值的参数,因为调用时实参与形参的结合是从左到右的顺序。

int add(int x,int y = 5,int z = 6);//正确
int add(int x = 1,int y = 5,int z);//错误
int add(int x = 1,int y,int z = 6);//错误

默认参数值与函数的调用位置

如果一个函数有原型声明,并且原型声明在定义之前,则默认参数值必须在函数原型声明中给出;而如果只有函数的定义,或函数定义在前,则默认参数值需在函数定义中给出

#include<iostream>
using namespace std;

int add(int x = 5, int y = 6);

int main()
{
    cout<<add();
    system("pause");
    return 0;
}

int add(int x, int y)
{
    return x + y;
}

结果为11

#include<iostream>
using namespace std;

int add(int x = 5, int y = 6)
{
    return x + y;
}

int main()
{
    cout<<add();
    system("pause");
    return 0;
}

结果相同

带默认参数值的函数举例:

计算长方体的体积:子函数getVolume是计算体积的函数,有三个形参:lengrh(长),width(宽),height(高),其中width和height带有默认值

主函数中以不同形式调用getVoluime函数,分析程序的运行结果

#include<iostream>
#include<iomanip>
using namespace std;

int getVolume(int length, int width = 2, int height = 3);

int main()
{
    const int X = 10, Y = 12, Z = 15;
    cout << "Some box data is ";
    cout << getVolume(X,Y,Z) << endl;
    cout << "Some box data is ";
    cout << getVolume(X, Y) << endl;
    cout << "Some box data is ";
    cout << getVolume(X) << endl;
    system("pause");
    return 0;
}

int getVolume(int length, int width, int height)
{
    cout << setw(5) << length << setw(5) << width << setw(5) << height << endl;
    return length * width * height;
}

输出结果:

 

posted @ 2018-02-01 21:26  ZZUGPY  阅读(695)  评论(0编辑  收藏  举报