c++ - 重新定义默认参数

标签 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++ 编写的。

提前致谢。

最佳答案

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

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

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

关于c++ - 重新定义默认参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38559323/

相关文章:

c++ - 指向静态类成员

c++ - 鼠标事件点击坐标,好像我迷失在坐标集中

javascript - 删除特定参数

C++用参数重载友元类函数参数

c++ - 具有默认模板参数的模板结构未实例化

c++ - 默认模板参数如何工作?

c++ - C++中的慢动作

c++ - 运算符在 C++ 中使用哪种重载?

c# - 如何在c#程序中包含cpp头文件

Fortran 2003/2008 : Elegant default arguments?