Vector des Datentyps class
-
Ich habe zwei klassen: KLASSE1, KLASSE2
In der .h Datei von KLASSE1 will ich nun eine Klassenvariable:
static vector<KLASSE2> klvector;
erstellen, allerdings bekomme ich beim Compilieren eine Fehlermeldung:
-error C2143: Syntaxfehler: Es fehlt ';' vor '<'
-error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
-error C2238: Unerwartete(s) Token vor ';'Wenn ich den Vector in der main-methode erstelle gibt es keine probleme

-
Du musst
KLASSE2natürlich vor der Deklaration vonklvectordefinieren.
Und std:: vor vector schreiben, ich nehme an du schüttest nicht den std-Namensraum gleich im Header aus (oder überhaupt, ist immer ne schlechte Idee)?
-
KLASSE2 existiert, beinhaltet ein paar Objektvariablen und hat einen Standart-constructor, oder was genau meinst du mit "definieren".
Habe "namespace std" im stdafx includiert, ist das ein Problem ?
-
Analyse schrieb:
KLASSE2 existiert, beinhaltet ein paar Objektvariablen und hat einen stan****-constructor, oder was genau meinst du mit "definieren".
Du hast den QuellCode (der Definition) natürlich vor der Headerdatei von KLASSE1 eingebunden, oder?
Also so:#include "KLASSE2.cxx" class KLASSE1 //...Zum anderen:
Probleme, Probleme... Schönheit. Stil.
-
Ja, eingebunden ist er auch in der stdfax.
-
Und du hast (sehr blöde Frage) auch <vector> implementiert? Und zwar nicht in irgeneinem Namensraum?
-
Und du hast (sehr blöde Frage) auch <vector> implementiert? Und zwar nicht in irgeneinem Namensraum?
Man da verfasse ich gerade den nächsten post, lese nochmal genau nach, probiere aus und..
es lag tatsächlich am fehlenden Import von <vector>.
Wenn ich <vector> oben in der .h datei includiere funktioniert es, wenn ich einen stdfax.h import mache und <vector> dort includiere nicht
-
Analyse schrieb:
Wenn ich <vector> oben in der .h datei includiere funktioniert es, wenn ich einen stdfax.h import mache und <vector> dort includiere nicht

Dort ist kein Namensraum? Du inkludierst es vor der Headerdatei? Usw. Das sind Grundkenntnisse, die man beim Umgang mit Modulen haben sollte, aber nicht verzweifeln!
Erste Regel: So spät wie möglich, so früh wie nötig. Das du <vector> in der Header-Datei Implementierst ist gut und richtig. Schön so lassen! Ansonste gab es noch einen sehr schönen Beitrag von wSkip zu dem Thema.
-
Konnte den Beitrag von wSkip nicht finden, aber danke für die Hilfe, das labyrinth ist ein bischen klarer geworden.

-
-
Danke.