我正在开发一个 C++ 类程序,我的编译器抱怨“不明确”的函数调用。我怀疑这是因为有几个函数定义了不同的参数。
我如何告诉编译器我想要哪一个?除了特定情况的修复之外,是否有通用规则(例如类型转换)可以解决此类问题?
Edit:
就我而言,我尝试打电话abs()
里面的一个cout
声明,传入两个double
s.
cout << "Amount is:" << abs(amountOrdered-amountPaid);
Edit2:
我包括这三个标题:
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
Edit3:
我已经完成了没有这段代码的程序,但为了解决这个问题,我重现了这个问题。逐字错误是:
对“abs”的称呼是不明确的。
编译器提供了三个版本abs
,每个都采用不同的数据类型作为参数。
发生的事情是你已经包括在内<cstdlib>
(间接地,因为它包含在iostream
) 随着using namespace std;
。该标头声明了两个函数std
与名字abs()
。一个获取并返回long long
,另一个返回long
。另外,全局命名空间中有一个(返回int
)来自<stdlib.h>
.
修复:嗯,abs()
需要双倍的在<cmath>
,这实际上会给你你想要的答案!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)