以下代码在使用MSVC进行编译时生成C4100警告。这怎么可能? “appliation”显然正在被引用。
class ApplicationInfo : public QObject
{
Q_OBJECT
public:
...
static void initialize(QApplication &application);
...
...
}
void ApplicationInfo::initialize(QApplication &application)
{
application.setOrganizationName(ApplicationInfo::organizationName());
application.setOrganizationDomain(ApplicationInfo::organizationName());
application.setApplicationName(ApplicationInfo::applicationName());
application.setApplicationVersion(ApplicationInfo::applicationVersion().toString());
}
答案 0 :(得分:7)
使用application
对象调用的函数是静态函数,因此它们实际上并不引用application
对象。
setOrganizationName
setOrganizationDomain
setApplicationName
setApplicationVersion
QCoreApplication
QApplication
的所有静态成员是否来自application
。使用{{1}}引用仅解析这些函数的名称范围,但实际上并未使用该对象。