C++ 默认参数和占位符
原创
©著作权归作者所有:来自51CTO博客作者wx6296d048c716d的原创作品,请联系作者获取转载授权,否则将追究法律责任
通常情况下,函数在调用时,形参从实参那里取得值。对于多次调用同一函数的同一 实参时,C++给出了更简单的处理办法。给形参以默认值,这样就不用从实参那里取值了。
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
int func1(int x, int = 0)
{
cout << "func1: x = " << x << endl;
return 0;
}
int volume(int len, int width, int high = 30)
{
return len * width * high;
}
int main(void)
{
int x = 10;
int v = 0;
func1(x);
func1(x , v);
int len = 10;
int w = 20;
int h = 30;
v = volume(len, w, h);
cout << "v = " << v << endl;
v = volume(len, w);
cout << "v = " << v << endl;
return 0;
}
错误函数写法
float volume(float length, float weight = 4,float high){
return length*weight*high;
}
在默认参数规则,如果默认参数出现,那么右边的都必须有默认参数,例如当 float weight 给予默认值,float high 没有赋值的话,运行就会报错
int func1(int x, int = 0)
{
cout << "func1: x = " << x << endl;
return 0;
}
函数占位参数
占位参数只有参数类型声明,⽽而没有参数名声明
一般情况下,在函数体内部⽆无法使⽤用占位参数
注:可以将占位参数与默认参数结合起来使⽤
意义
为以后程序的扩展留下线索
兼容C语⾔言程序中可能出现的不规范写法
总结:
默认参数规则 :
只有参数列表后面部分的参数才可以提供默认参数值
一旦在一个函数调用中开始使用默认参数值,那么这个参数后的所有参 数都必须使用默认参数值
如果默认参数和占位参数在一起,都能调⽤用起来