Visual C++ 6.0教程:函数中的默认参数
默认参数
对每一个函数原型或定义中声明的变量,调用函数都需要为其传递一个值,这个值必须与声明的变量类型相符。也就是说,如果声明这样一个函数:
long myFunction(int)
{
……
}
这个函数事实上要对一个整型变量进行操作。如果函数定义与此不符,或者你未能向其传送一个整数,那么就会出现编译错误。
long returnvalue=myFunction(); //编译时出错,myFunction函数需要一个参数
如果函数原型声明了一个参数默认值,就不会出现上面的错误了。
本教程来自网站源代码http://www.isstudy.com 如果转载,请注明出处。
long myFunction(int number1=1)
{
……
}
如果原调用函数中不包含参数,系统会自动将1作为参数传递给函数。
请看下面的例子:根据公式“体积=长×宽×高”求立方体的体积。
#include "iostream.h"
int Bulk(int length,int width=1,int height=1)
{
int nbulk=length*width*height;
return nbulk;
}
int main()
{
int bulk1=Bulk(10); //缺省width和height,等同于Bulk(10,1,1)
cout<<"bulk1= "<
int bulk2=Bulk(10,20); //缺省height,等同于Bulk(10,20,1)
cout<<"bulk2= "<
int bulk3=Bulk(10,20,30); //不缺省
cout<<"bulk3= "<
}
运行结果如图1所示。

图1 运行结果
需要注意的是,只有当最后一个参数有默认值时,才允许倒数第2个参数有默认值。
以上面的例子为例,当height有默认值时,才允许width有默认值。如果:
int Bulk(int length,int width=1,int height)
{
……
}
编译器就会出错,因为height(第3个参数)没有默认值,而width(第2个参数)却有默认值了,这是不允许的。