C++ 超载‘;QString(int)和#x2019;含糊不清
下面的代码片段给出了编译错误C++ 超载‘;QString(int)和#x2019;含糊不清,c++,qt4.7,C++,Qt4.7,下面的代码片段给出了编译错误 重载“QString(int)”的调用与qt 4.7.3不明确 (系统为linux 64位,debian不稳定) 有什么提示吗?相关的位是这一行: QSAConnection() : sender(0), signal(0), function_ref() { } 由于signal是QString,因此signal(0)位试图调用QString类上的构造函数,该构造函数将整数作为其唯一参数QString没有这样的构造函数。但是,它确实有一个构造函数,它采用char
重载“QString(int)”的调用与qt 4.7.3不明确
(系统为linux 64位,debian不稳定)
有什么提示吗?相关的位是这一行:
QSAConnection() : sender(0), signal(0), function_ref() { }
由于signal
是QString
,因此signal(0)
位试图调用QString
类上的构造函数,该构造函数将整数作为其唯一参数<根据Qt文档,code>QString没有这样的构造函数。但是,它确实有一个构造函数,它采用char
,还有一个QChar
,它具有从int
的隐式转换。我想这两者之间是模棱两可的
你是说这个吗
QSAConnection() : sender(0), signal(), function_ref() { }
这将默认初始化
信号
。请注意,从技术上讲,在这种情况下根本没有必要将其包含在初始值设定项列表中。这是一件好事。如果没有歧义,您可能会在QString::QString(char const*src)
上遇到空指针异常。这是std::string
的常见错误
QSAConnection() : sender(0), signal(), function_ref() { }