Linker-Fehler



  • warum bekomm ich immer linker-fehler. Ich bin mir nicht mal sicher ob das bei C++ Grundlagen liegt oder Qt Problem ist

    1>mainwindow.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""private: static class QStandardItemModel * Object::model" (?model@Object@@0PAVQStandardItemModel@@A)".
    1>E:\Programmieren\_Eigene Apps\Simulationsprogramme\Debug\Schoepfer.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.
    
    class Object
    {
    	static QStandardItemModel* model;
    public:
    
    	Object(Object* parent = 0, int x = 0, int y = 0);
    //...
    	static void setModel(QStandardItemModel& refModel) { model = &refModel; }
    
    };
    

    wenn ich woanders folgendes mache:

    Object::setModel(*model);
    

    Es geht darum dass nur ein model für alle Objekte geben soll.


  • Mod

    Die Klassendefinition selber legt noch keine Member an. Statische Member müssen irgendwo "leben". Schreib in eine Quellcodedatei

    QStandardItemModel* Object::model;
    

    und link diese dazu.



  • okay, ich hatte gehofft dass ich irgendwie alles im Klassenrumpf schreiben kann, damit es übersichtlicher wird



  • quest456 schrieb:

    okay, ich hatte gehofft dass ich irgendwie alles im Klassenrumpf schreiben kann, damit es übersichtlicher wird

    Alles in den "Klassenrumpf" zu schreiben macht die Klassendefinition (ich nehme an die meinst du) selten übersichtlicher.


Anmelden zum Antworten