statisches Objekt
-
Hallo
Ich bekomme folgende fehlermeldung:
unresolved external symbol "public: static class CodeSite * CodeSite::mSingleton" (?mSingleton@CodeSite@@2PAV1@A)Ich habe eine DLL in der ich eine Klasse definiert hat. Die Klasse möchte ich als singelton realisieren. allerdings bekomme ich jedesmal den obengenannte fehler beim compilieren. Was mache ich falsch?
definition im Header file:
static CodeSite* getSingleton(); static CodeSite* mSingleton;
CodeSite* CodeSite::getSingleton() { if(!mSingleton) mSingleton = new CodeSite(); return mSingleton; }
-
static Variablen müssen noch mal ausserhalb der Klasse deklariert werden (z.b. in der CPP)
// header class statictut { static int a; protected: public: statictut(); virtual ~statictut(); };
//cpp int statictut::a; statictut::statictut() { } statictut::~statictut() { }
Devil
-
Hi
Danke, jetzt compiliert er. Wieso muss man statische variablen nochmals ausserhalb deklarieren?
-
devil81 schrieb:
static Variablen müssen noch mal ausserhalb der Klasse deklariert werden (z.b. in der CPP)
definiert
-
Franz schrieb:
Hi
Danke, jetzt compiliert er. Wieso muss man statische variablen nochmals ausserhalb deklarieren?http://tutorial.schornboeck.net/staticmember.htm schrieb:
Static Variablen muss extra definieren. Denn innerhalb der Klassendefinition wird die static Variable nur deklariert. Bei 'normalen' Variablen findet die Definition bei der Instanziierung statt. Bei static Variablen muss die Definition natürlich extra erfolgen. Am besten in einer eigenen Übersetzungseinheit um die ODR nicht zu verletzen.
-
Shade Of Mine schrieb:
devil81 schrieb:
static Variablen müssen noch mal ausserhalb der Klasse deklariert werden (z.b. in der CPP)
definiert
danke, ich verwechsel das immer