Staticher Vector
-
Hallo
ich habe folgendes Problem:Ich habe eine klasse "Pappierkorb". In dieser klasse möchte ich ein Vector erstellen, welcher Zeiger von "SDL_Surfaces" enthält (ist jetzt nicht wichtig warum es dieser TYP ist). Auserdem habe ich ein paar statische Methoden geschrieben. Alles gut und schön. Aber ich bekomme immer ein Linker Error. Ich habe mich auch mal im netz schlau gemacht und habe herrausgefunden, dass man den statischen Vector vorerst initialisieren muss. Doch da liegt das Problem. Ich habe keine Ahnung, wie ich das machen soll.
Hier ersteinmal den Code den ich bis jetzt geschrieben habe:
#include <vector> #include ".\SDL_SOURCE\include\SDL.h" using namespace std; class Pappierkorb { public: static void neueGrafik(SDL_Surface* gfx) { grafiken.push_back(gfx); } static void loescheAlles() { ... } private: static vector<SDL_Surface *> grafiken; };Folgende Meldungen bekomme ich:
error LNK2001: Nicht aufgelöstes externes Symbol ""private: static class std::vector<struct SDL_Surface *,class std::allocator<struct SDL_Surface *> > Pappierkorb::grafiken" (?grafiken@Pappierkorb@@0V?allocator@PAUSDL_Surface@@@std@@@std@@A)". button.obj
fatal error LNK1120: 1 nicht aufgelöste externe Verweise.
Wäre schön wenn jemand eine Idee hat

MFg
-
In der cpp Datei:
vector<SDL_Surface> Pappierkorb::grafiken;
-
Satische Member müssen noch definiert werden. Schreib irgendwo in die cpp
vector<SDL_Surface *> Pappierkorb::grafiken;Papier schreibt man übrigend nur mit einem p.
-
Aja .. ich danke vielmals .. es hat geklappt

-
Nochwas,
Das scheint ja ein Header zu sein. Lass da bitt das using namespce std; weg sonst öffnest du den std-Namensraum in jeder Datei in die dieser Header inkludiert wird. Das ist nicht im Sinne des Erfinders.