### 设置默认值参数

所谓默认值参数是指在编写函数时为参数提供一个默认值，用户在调用函数时，如果在对应的参数位置上没有指定实际参数，则系统采用默认值作为函数参数。例如，我们设计一个默认值参数的函数。

默认值参数

void OutputString(char *pszText = "MRKJ") //为参数提供一个默认值

{

cout << pszText << endl;

return ;

}

这样，当我们在程序中调用 OutputString 函数时，即可以提供实际参数，也可以不提供实际参数。例如：

int main(int argc, char* argv[])

{

OutputString("BCCD"); //通过实际参数调用函数

OutputString(); //采用默认值调用函数

return 0;

}

运行结果如图 1 所示。

图 1 默认值参数

注意：如果函数具有多个参数，需要为某些参数提供默认值时，要保证默认值参数应位于非默认值参数的右方，否则将导致编译错误。

例如，下面的函数定义是非法的。

int Stat(int nLen, int nHeight = 50, int nWidth) //非法的默认值参数

{

return nLen * nHeight * nWidth;

}

在函数 Stat 中，试图为第 2 个参数 nHeight 提供默认值，但是第 3 个参数 nWidth 没有默认值，因此将导致编译错误。解决方法是为第 3 个参数 nWidth 提供一个默认值，或者将第 2 个参数 nHeight 调整为第 3 个参数。例如：

int Stat(int nLen, int nHeight = 50, int nWidth = 1) //提供 2 个默认值参数

{

return nLen * nHeight * nWidth;

}

或者修改为下面的形式。

int Stat(int nLen, int nWidth, int nHeight = 50) //调整默认值参数的位置，使其位于最右方

{

return nLen * nHeight * nWidth;

}