?
Hallo Leute,
ich brauche mal eben etwas Hilfe. Mit C++ und OOP habe ich bisher noch nicht wirklich viel gemacht. Mein Wissen beläuft sich auf C, C# und Java. Aber jetzt brauche ich tatsächlich ein C++ Programm und wollte deshalb mit der Sprache etwas anfangen. Aber nun hänge ich an einem Problem fest und komme nicht weiter.
Ich habe in VS C++ ein Projekt erstellt. In diesem Projekt habe ich die Klasse IP_v4, eine Instanz dieser Klasse soll nichts anderes sein, als ein Eintrag in einem "Adressbuch". Dieses Adressbuch will ich auch in der gleichen Klasse haben, als statisches Attribut. Wird eine neue Instanz erzeugt, so soll sie sich selbst in dieses Adressbuch eintragen. Das ist das, was ich vorhabe. Meine Realisierung:
Im Header File der Klasse habe ich folgendes stehen:
public:
IP_v4(int block_a, int block_b, int block_c, int block_d);
...
typedef std::vector<IP_v4*> ipList;
static ipList list;
...
~IP_v4(void);
Und im Constructor folgendes:
IP_v4::IP_v4(int block_a, int block_b, int block_c, int block_d)
{
...
IP_v4::list.push_back(this);
...
}
Doch leider bekomme ich einen Fehler:
Error 1 error LNK2001: unresolved external symbol "public: static class std::vector<class IP_v4 *,class std::allocator<class IP_v4 *> > IP_v4::list" (?list@IP_v4@@2V?$vector@PAVIP_v4@@V?$allocator@PAVIP_v4@@@std@@@std@@A) IP_v4.obj CPP-Test1
Error 2 fatal error LNK1120: 1 unresolved externals C:\Users\dr\Documents\Visual Studio 2008\Projects\CPP-Test1\Debug\CPP-Test1.exe CPP-Test1
Kann mir von euch jemand sagen, woran das liegen könnte?