1、函数原型中可能会声明参数默认值,默认值是在没有提供参数值时使用的一个值。
比如函数原型 long myFunction(int x=50);
该原型就指出了一个参数默认值50,原型中声明参数值与函数定义中没有影响,函数定义中还可以使用:
long myFunction(int x){函数定义};
如果调用函数myFunction()时没有给定实参,那么就使用默认值x=50
2、参数默认值的注意事项:如果某个参数没有默认值,那么它前面所有的参数都不得使用默认值。
比如 long myFunction(int param1,int param2,int param3);仅当给param3使用默认值后才能给param2默认值,当且仅当param3,param2都给定默认值后才能给param1默认值。(没有写错,默认值的给定顺序就是从右到左,因为规律:形参从右到左设定默认值,实参从左到右赋值给形参)
3、一道使用默认参数的实例(《21天学会C++》P846.7):编写一个求立方体体积的函数。
#include<iostream> using namespace std; //int AreaCube(int length,int width=25,int height=1); int CubeVolume(int length,int width=25,int height=1);//注意,这里如果设置成
//int cubeVolume(int length=25,int width=1,int height)
//就会报错,因为形参中要从右到左设置默认参数 int main() { int length=100,width=25,height=10; int volume; volume=CubeVolume(length,width,height); cout<<"firt cube equals:"<<volume; volume=CubeVolume(length,width);//想使用哪个默认参数,直接调用函数时不调用这个参数就好了 cout<<"second cube equals:"<<volume; volume=CubeVolume(length); cout<<"third cube equals:"<<volume; system("PAUSE"); return 0; } int CubeVolume(int length,int width,int height) { return (length*width*height); }