调用函数是模糊的

时间:2011-07-15 09:03:48

标签: c++ function-calls

我正在尝试构建一个程序,但收到错误:

application_ob.cpp: In member function 'void ApplicationWindow::OBNewLoad(QString, QString)':
application_ob.cpp:103:41: error: call of overloaded 'FormatFromExt(QString&)' is ambiguous
application_ob.cpp:103:41: note: candidates are:
/usr/include/openbabel-2.0/openbabel/obconversion.h:81:24: note: static OpenBabel::OBFormat* OpenBabel::OBConversion::FormatFromExt(const char*)
/usr/include/openbabel-2.0/openbabel/obconversion.h:84:24: note: static OpenBabel::OBFormat* OpenBabel::OBConversion::FormatFromExt(std::string)

我如何修补它以便正常构建?请以简单的方式解释,因为我不懂C ++。

1 个答案:

答案 0 :(得分:2)

application_ob.cpp的第103行可能会读取如下内容:

FormatFromExt(qs);

立即解决方案是将此(或其等价物)更改为

FormatFromExt(qs.toStdString());

但是,我们没有足够的信息来说明qs的可能内容,以告诉上述方法在处理非拉丁字符时是否有效。更好的选择是 在this answer中提出,但要在它们之间做出选择,我们必须知道我们正在处理哪种数据。