Static in Class -> Frage
-
Hallo,
warum funktioniert folgendes nicht?#include <iostream> #include <vector> using namespace std; class bla { private: static vector<bla> m_bla; static vector<bool> m_bool; public: bla() { if (m_bla.size()==0) { } // zugreifen auf m_bla löst die Fehler aus } }; int main() { bla test; }Es werden folgende Fehler ausgegeben:
1>Verknüpfen... 1>main.obj : error LNK2020: Nicht aufgelöstes Token (0A0002C7) "private: static class std::vector<class bla,class std::allocator<class bla> > bla::m_bla" (?m_bla@bla@@0V?$vector@Vbla@@V?$allocator@Vbla@@@std@@@std@@A). 1>main.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""private: static class std::vector<class bla,class std::allocator<class bla> > bla::m_bla" (?m_bla@bla@@0V?$vector@Vbla@@V?$allocator@Vbla@@@std@@@std@@A)". 1>C:\Users\Documents\Visual Studio 2005\Projects\bli\Debug\bli.exe : fatal error LNK1120: 2 nicht aufgelöste externe Verweise.
-
Oh sry, hab vergessen, die stats zu initialisieren!
-
'tschuldignung noch ein drittes Mal: Wie kann ich denn den Vector initialisieren
bzw. mit was???
-
Initialsierungsliste + http://www.cplusplus.com/reference/stl/vector/vector.html
-
Für static-Member kommt die Initialisierungsliste nicht in Frage.
// Header
//... class bla { private: static vector<bla> m_bla; //...// Source
//... vector<bla> bla::m_bla = vector<bla>(); // Initialisierung siehe auch Link von drakon //...cu André
-
asc schrieb:
Für static-Member kommt die Initialisierungsliste nicht in Frage.
cu AndréMist. Das kommst davon, wenn man es nur kurz überfliegt. :p
-
Danke!!!