gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 20:11:11 25 4
gpt4 key购买 nike

我正在将一些旧的 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){...}

当我在 C++ 中“直接”复制到类声明和实现中时,我收到“原型(prototype)错误”。

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

使用 g++ 和 NetBeans 7.3 在 Linux 中工作

最佳答案

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
}

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

关于c++ - 如何将 C 中声明的可选参数方法转换为 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41999040/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com