2010-12-28 6 views
4

Der folgende Code generiert eine C4100 Warnung beim Kompilieren mit MSVC. Wie ist das möglich? "Anwendung" wird eindeutig referenziert.MSVC C4100: 'Anwendung': nicht referenzierte formale Parameter Warnung

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()); 
} 

Antwort

7

Die Funktionen, die Sie verwenden das application Objekt aufgerufen sind statische Funktionen, so dass sie verweisen nicht wirklich die application Objekt.

setOrganizationName 
setOrganizationDomain 
setApplicationName 
setApplicationVersion 

Sind alle statischen Mitglieder QCoreApplication die QApplication aus leitet. Die Verwendung der application-Referenz löst nur den Namensumfang für diese Funktionen auf, das Objekt wird jedoch nicht tatsächlich verwendet.

Verwandte Themen