【发布时间】:2012-03-02 20:18:52
【问题描述】:
我有一个看起来像这样的课程:
class MyClass {
public:
void drawText(const QString& rText);
void drawText(const std::string& rText);
};
我重载了drawText() 方法,因为我想接受QString 和std::string。
但是当我写这样的东西时:
MyClass foo;
foo.drawText("Hello");
编译器抱怨对drawText() 的调用不明确。
我了解到,编译器无法从 char 数组中决定是 QString 还是 std::string,因为两者都提供了合适的构造函数。
但是我有没有办法通过传递 QString 或 std::string 或 char 数组来确保用户可以使用 drawText() 方法?
【问题讨论】:
-
您正在使用 QT 为什么不只使用 QString 并远离 std 功能?将 2 个具有相似功能的库结合起来,以后会让你大吃一惊。
-
我通常只使用 QString,我可以坚持使用它,但我的问题更多是因为好奇。
标签: qt stdstring ambiguous-call