对函数的调用是不明确的

Call to a function is ambiguious

本文关键字:不明确 调用 函数      更新时间:2023-10-16

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

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++,请简单解释一下。

application_ob.cpp的第103行可能是这样的:

FormatFromExt(qs);

直接的解决方案是将此(或其等同内容)更改为

FormatFromExt(qs.toStdString());

然而,关于qs的可能内容,我们没有足够的信息来判断上述方法在处理非拉丁字符时是否有效。更好的选择是