typedef in Klassendeklaration
-
Hallo,
kann mir wer sagen wieso folgendes nicht funktioniert.
test.h :
... typedef int comp; class Queue { private: list<comp> li; ... }main.cc :
... #include "test.h" ... int main () { Queue q; return 0; }bekomme ständig folgende Fehler:
test.h Fehler: ISO-C++ verbietet Deklaration von »list« ohne Typ
test.h Fehler: expected »;« before »<« tokenworan liegt das??
MfG
Chris
-
Weil es std::list ist?
Oder halt "using namespace std;" verwenden, aber des halt ich in Headern für net so doll.Soll heißen: An dem typedef is net wirklich was falsch.
-
aber des halt ich in Headern für net so doll
Man sollte grundsätzlich versuchen den Gültigkeitsbereich eines Namespaces so klein wie möglich zu halten.
In Header sollte man auf jedem Fall auf ein
using namespace xyz
verzichten. Das Problem das dabei entstehen kann ist die mehrfache Deklaration von Typen (Strukturen, Klassen, etc.).
-
@Chris986:
Außerdem muss nach deiner Klassendefinition noch ein Semikolon stehen.
-
Danke,
hätte ich auch selbst drauf kommen können dass es am Namensraum liegt.MfG
Chris