如何将 C 中声明的可选参数方法转换为 C++

How can I convert optional parameter method declared in C into c++

我正在将一些旧的 C 代码转换为 C++ 并遇到一些奇怪的东西,.h 文件中声明的 C 代码说: void Message(char *s, ...); 和 .c

中的实现头
void Message(char *s, long x1, long x2, long x3, long x4, long x5, long x6, long x7, long x8, long x9, long x10){...}

当我将 'straight' 复制到 class 声明中并在 c++ 中实现时,我得到 "prototype error".

我是否需要像在 .c 文件中那样做一个完整的声明,或者是否有另一种 C++ 和 class 用法的方法? x1 ... x10 是选项参数,很少使用。

在 linux 中使用 g++ 和 NetBeans 7.3

C 代码不应编译。要在 C++ 中实现可选参数,请将它们的值放在声明中:

void Message(char *s, long x1 = 0L, long x2 = 0L, long x3 = 0L, long x4 = 0L, long x5 = 0L,
        long x6 = 0L, long x7 = 0L, long x8 = 0L, long x9 = 0L, long x10 = 0L);

然后像这样定义你的函数:

void Message(char *s, long x1, long x2, long x3, long x4, long x5,
        long x6, long x7, long x8, long x9, long x10)
{
    // Function body
}

请注意,您只需在一处指定默认值。在声明中执行此操作,以便客户可以看到它们。