【发布时间】:2011-11-24 21:06:05
【问题描述】:
我正在编写一个用于类的 C++ 程序,而我的编译器正在抱怨“模棱两可”的函数调用。我怀疑这是因为有几个函数定义了不同的参数。
如何告诉编译器我想要哪一个?除了针对特定情况的修复之外,是否有一般规则(例如类型转换)可以解决这类问题?
编辑:
就我而言,我尝试在cout 语句中调用abs(),并传入两个doubles。
cout << "Amount is:" << abs(amountOrdered-amountPaid);
编辑2:
我包括这三个标题:
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
编辑3:
我已经完成了没有这段代码的程序,但是为了解决这个问题,我已经重现了这个问题。逐字错误是:
对“abs”的调用不明确。
编译器提供了三个版本的abs,每个版本都采用不同的数据类型作为参数。
【问题讨论】:
-
能否请您从您的代码中展示一个示例?
-
这真的取决于情况。您需要发布代码,并且如果编译器错误包括哪些函数是候选函数(最近的 GCC 有),这也会有所帮助。
-
包含哪些标题也很好。
-
您遇到的逐字错误是什么?
-
@Moshe:也许你可以包含其余的信息。您说“编译器提供了三个版本的
abs”,但您没有显示这些消息是什么。
标签: c++ ambiguous-call