重载的"QString(int)"不明确
overloaded ‘QString(int)’ is ambiguous
下面的代码片段给出了编译错误带qt的call of overloaded ‘QString(int)’ is ambiguous
4.7.3(系统为linux 64位,debian不稳定(
struct QSAConnection
{
QSAConnection() : sender(0), signal(0), function_ref() { }
QSAConnection(QObject *send, const char *sig, QSObject ref)
: sender(send), signal(QLatin1String(sig)), function_ref(ref) { }
QObject *sender;
QString signal;
QSObject function_ref;
};
有什么建议吗?
相关位为此行:
QSAConnection() : sender(0), signal(0), function_ref() { }
由于signal
是QString
,signal(0)
位试图调用QString
类上的构造函数,该构造函数将整数作为其唯一参数。根据Qt文档,QString
没有这样的构造函数。然而,它确实有一个采用char
的构造函数,以及一个从int
进行隐式转换的QChar
。我想这两者之间是模棱两可的。
你是这个意思吗?
QSAConnection() : sender(0), signal(), function_ref() { }
它将默认初始化signal
。请注意,从技术上讲,在这种情况下根本没有必要将其包含在初始值设定项列表中。
这是一件好事。如果没有歧义,您可能会在QString::QString(char const* src)
上遇到一个空指针异常。这是std::string
常见的错误。
相关文章:
- Visual C++(VS2017)中用户定义的转换不明确
- 重载类方法的不明确调用
- 为函数定义符号不明确的指针参数
- 父类的私有函数会导致对具有相同名称和相似参数的子类中的公共函数的不明确调用
- 在 C++17 中的命名空间和子命名空间中重载运算符是不明确的
- C++ 编译器错误:P1LinkedList.cpp:145:错误:重载的"to_string(int&)"调用不明确
- 对重载函数find_first_not_of的不明确调用
- 不明确的成员模板查找
- gcc出现不明确的模板实例化错误
- 调用'Node'构造函数是不明确的
- 如何解决不明确的运算符过载问题?
- 使用 nullptr 调用重载方法是不明确的
- "fpclassify":对重载函数的不明确调用
- 对"列表"的引用不明确,包括头文件
- 删除全局隐式函数 - 避免使用不明确的运算符
- 当接收到不明确的规范时,表示图的邻接列表的数据结构
- "byte":使用Crypto++和Windows SDK时出现不明确的符号错误
- 使用 std::iterator_traits<> 时编译时错误不明确
- 不明确的函数模板
- Vulkan中的描述符集计数不明确