函数在声明时可以预先给出默认的形参值,调用时如给出实参,则采用实参值,否则采用预先给出的默认参数值。
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;
}
输出结果:
原文链接: https://www.cnblogs.com/ZZUGPY/p/8401365.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/268721
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!