Linkerfehler 2001 Wiedereinsteigerfrage zum Klassen zugriff
-
Hallo,
nachdem ich nun die letzten 5 Jahre nicht mehr mit C++ gearbeitet habe und mich mit C# vergnügt habe muss ich nun wieder zurück in alte Gefilde. Leider ist viel verloren gegangen was mal da war und ich steh gerade auf dem Schlauch.
Ich habe eine Klasse BasisObject.
Diese Klasse hat einen integer Wert Fritz. Diesen Wert muss ich aus dem Form beschreiben, beim linken bekomme ich aber immer einen kryptischen Linkerfehler 2001:
Fehler 4 error LNK2001: Nicht aufgelöstes externes Symbol ""public: static class QString ProgObject::teststring" (?teststring@ProgObject@@2VQString@@A)".
Hier das relativ kurze Beispiel:
Im Formcode
void testset() { ProgObject ProgObj; ProgObj.testint=5;//Hier bekomme ich den Fehler }
Die h.Datei der Klasse sieht so aus:
#include "BaseObject.h" #ifndef PROGOBJECT_H_INCLUDED #define PROGOBJECT_H_INCLUDED class ProgObject : public BaseObject { Q_OBJECT; private: public: ProgObject(); ~ProgObject(); QString static teststring; int static testint; }; #endif
Im cpp wird noch gar nichts gemacht, wie gesagt ich bin grad ganz am Anfang mich wieder einzufinden:
#include "ProgObject.h" //Konstruktur ProgObject::ProgObject() { testint=2;//Hier bekomme ich auch einen Fehler } //Destruktur ProgObject::~ProgObject() { }
Vielleicht kann mir jemand eine Stoß geben was ich falsch mache
Danke hierfür
Gruß
Felix
-
Deine statischen Member haben keine Definition. In die cpp:
QString ProgObject::teststring; int ProgObject::testint;
-
Verdammt ja ich wusste doch das ich irgendwas wichtiges vergessen haben!
Danke fürs schubsen