作者:jicanmeng
时间:2014年11月27日
在C++中,允许在函数声明或定义时给一个或多个参数指定默认值。而在C语言中是不允许的。
示例程序如下:
#include <iostream> void PrintValues(int nValue1, int nValue2=10) { using namespace std; cout << "1st value: " << nValue1 << endl; cout << "2nd value: " << nValue2 << endl; } int main() { PrintValues(1); // nValue2 will use default parameter of 10 PrintValues(3, 4); // override default value for nValue2 }
程序运行结果如下:
[jicanmeng@andy tmp]$ g++ defaultParam.cpp
[jicanmeng@andy tmp]$ ./a.out
1st value: 1
2nd value: 10
1st value: 3
2nd value: 4
[jicanmeng@andy tmp]$
函数PrintValues()有两个参数,其中第二个参数有默认值10。当我们调用这个函数时,如果没有提供第二个参数,那么PrintValues()调用时第二个参数就使用默认值10。
在设置函数的默认形参值时要注意几点:
void PrintValue(int nValue1=10, int nValue2);
这样的函数声明是不允许的。
void PrintValue(int nValue1=10, int nValue2=5);
函数声明语句就等价于两条函数声明语句:void PrintValue(int nValue1=10, int nValue2);
void PrintValue(int nValue1, int nValue2=5);