gpt4 book ai didi

c++ - 在 C++ 中使用默认参数时重载函数的实例不止一次

转载 作者:行者123 更新时间:2023-11-30 01:15:42 24 4
gpt4 key购买 nike

我在这里定义了这个函数;

static double round(double x, int d = 0) {
return (x * pow(10.0, d) - fmod(x * pow(10.0, d) - 0.5, 1.0) + 0.5) / pow(10.0, d);
}

我在 main 方法上方定义了这个原型(prototype);

static double round(double x, int d = 0);

但是,如果我尝试仅使用一个参数从 main 方法中调用该方法,则会出现上述语法错误。我不知道为什么会这样,这让我发疯。

最佳答案

如果您包含任何标准头文件,那么它可能与同名的 C 库函数冲突。

不幸的是,C++ 库实现被允许将它们转储到全局命名空间以及 namespace std 中,因此很难避免此类冲突。

唯一可移植的解决方案是更改您的函数,使其具有与 C 库函数不同的名称、不同(非可选)参数,或者位于不同的命名空间中。

(另外,正如其他答案所指出的那样,您只能指定一次默认参数。您应该将它们从定义中删除,将它们留在声明中。)

关于c++ - 在 C++ 中使用默认参数时重载函数的实例不止一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28051089/

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