C++中函数在定义时可以预先声明默认的形参值,调用时如果给出的实参则用实参初始化形参;如果没有给出实参,则采用预先声明的默认形参值。
在Java不能在构造方法中使用默认的参数,不知道C语言中能否使用,C++好像是很独特的一种使用方式
以下是一个简单的实例:
#include <iostream>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
//不用默认参数
//int add(int x,int y);
//第一个参数使用默认值
int add(int x,int y=6);
// 俩个参数都是用默认值
//int add(int x=6,int y=5);
int main(int argc, char** argv) {
//不用默认参数
// cout<<add(10,20)<<endl;
//第一个参数使用默认值
cout<<add(10)<<endl;
// 俩个参数都是用默认值
// cout<<add()<<endl;
return 0;
}
int add(int x,int y)
{
return x+y;
}
以上是三种形式测试的时候打开对应的注释就ok了。
注意:默认形参必须从右往左的顺序声明。在有默认值的形参的右面不能出现无默认值的形参。
例如
int add(int x,int y=5,int z=6);//正确
int add(int x=4,int y,int z=6);//错误的有默认形参的右面不能出现无默认值的形参
int add(int x=4,int y=5,int z);//错误的有默认形参的右面不能出现无默认值的形参