重新定义默认参数

时间:2016-07-25 03:34:25

标签: c++ default-arguments

在编译某些代码时,我遇到了“重新定义默认参数”的错误。这是引发错误的行:

bool wCommandDistributor::initialise (const bool server = true, const short ncmds=0,
                byte (*cmds)[CMD_MAX_RECLEN] = (byte (*)[CMD_MAX_RECLEN])0)

无论如何我可以重写代码以解决错误吗?这不是我写的代码。我正在帮助重写代码,它是用C ++编写的。

提前致谢。

1 个答案:

答案 0 :(得分:6)

编译器说明了这一切,你正在重新定义initialise的默认参数(即使它们可能是相同的)。

默认参数可能已在函数声明中定义。您无需在函数定义中重新定义它们,因此您应该将它们删除。

但只有已经在声明中定义的那些,可能是声明中定义的,仅在定义中。在这种情况下,你应该自然地离开它们。