Vorwärtsdeklaration einer static nichtmember Funktion



  • Hallo Leute,

    ich habe eine Funktion die den Projektpfad zurückgibt. Qt fordert für den Aufruf mancher Methoden statische Funktionen (keine Ahnung warum).

    Jetzt habe ich die Funktion static gemacht und bekomme

    error C2129: static function 'QString path(void)' declared but not defined
    

    Die Funktion ist als freie nichtmemberfunktion in einer H Datei deklariert und in der CPP Datei implementiert.

    Wenn die Implementierung in der H Datei abläuft funktioniert alles einwandfrei.



  • class A
    {
      static void foo();
    };
    
    void A::foo() // A:: vergessen?
    {
      std::cout << "Blubb?";
    }
    


  • cooky451 schrieb:

    ...

    Es geht mir um freie nichtmember Funktionen. Bei deinem Beispiel handelt es sich um eine statische Methode



  • asdsad schrieb:

    cooky451 schrieb:

    ...

    Es geht mir um freie nichtmember Funktionen. Bei deinem Beispiel handelt es sich um eine statische Methode

    Du meinst so?
    xyz.cpp:

    static void foo()
    {
    }
    

    Das static sagt doch schon, dass die Funktion nur in dieser Übersetzungseinheit sichtbar ist? Zudem, warum sollte QT so etwas fordern? Sorry falls ich das schon wieder falsch verstanden habe.



  • cooky451 schrieb:

    Das static sagt doch schon, dass die Funktion nur in dieser Übersetzungseinheit sichtbar ist?

    Ups. Das habe ich nicht gewusst. Das war wohl der entscheidende Tipp, jetzt gehts 🙂 Danke


Log in to reply