gpt4 book ai didi

c++ - 如何修复 "ambiguous"函数调用?

转载 作者:IT老高 更新时间:2023-10-28 22:02:41 30 4
gpt4 key购买 nike

我正在编写一个用于类的 C++ 程序,而我的编译器正在提示一个“模棱两可”的函数调用。我怀疑这是因为有几个函数定义了不同的参数。

如何告诉编译器我想要哪一个?除了针对特定情况的修复之外,是否有一般规则(例如类型转换)可以解决这类问题?

编辑:

就我而言,我尝试调用 abs()内部 cout声明,传入两个 double秒。

cout << "Amount is:" << abs(amountOrdered-amountPaid);

编辑2:

我包括这三个标题:

#include <iostream>
#include <fstream>
#include <iomanip>

using namespace std;

编辑3:

我已经完成了没有这段代码的程序,但是为了解决这个问题,我已经重现了这个问题。逐字错误是:

Call to 'abs' is ambiguous.

编译器提供了三个版本的 abs ,每个都采用不同的数据类型作为参数。

最佳答案

发生的事情是您已包含 <cstdlib> (间接地,因为它包含在 iostream 中)以及 using namespace std; .这个头文件在 std 中声明了两个函数名称为 abs() .取回long long ,其他返回 long .另外,全局命名空间中的一个(返回 int )来自 <stdlib.h> .

修复:好吧,abs()需要双倍的在 <cmath> ,这实际上会给你想要的答案!

关于c++ - 如何修复 "ambiguous"函数调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7549874/

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