`
java-mans
  • 浏览: 11431385 次
文章分类
社区版块
存档分类
最新评论

C++ 缺省参数

 
阅读更多

C++语言,允许参数表中包含无名参数,主要是为了区分函数,例如:
int f(int a,int b){return a+b*b;}
int f(int a,int b,int){return a*a+b;}
两个不同的函数同名,但由于第二个函数包含一无名参数,使得在调用时能够被区分,f(x,y)是第一个函数的调用,f(x,y,0)是第二个函数的调用。
C++程序还允许为函数定义可缺省参数,这种函数调用时具有灵活性,例如:
int sqrsum(int a,int b,int c=0){
return a*a+b*b+c*c;
}
其中参数 c 为可缺省参数,下面的调用方式都是合法的(x,y,z 为int 型变量):
sqrsum(x,y,z)
sqrsum(x+y,x-y)
sqrsum(x,y)
参数表中可有任意多个参数指定为可缺省参数,但所有可缺省参数必须列后。在调用该函数时,一般不允许部分缺省,即要么省去全部缺省参数,要么一个也不省。

  缺省参数同函数重载一样,给程序员提供了很多方便,它们都使我们可以在不同的场合使用同一名字。不同之处是,当我们不想亲手提供这些值时,由编译器提供一个缺省参数。有时可用缺省参数代替函数重载。用函数重载我们得把一个几乎同样含义、同样操作的函数写两遍甚至更多。当然,如果函数之间的行为差异较大,用缺省参数就不合适了。


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics