enum im ktor?
-
hallo
ich habe eine pure virtual class:class A { public: virtual void test(); enum TYPE{WIENER,FRANKFURTER, DEBREZINER}; }
und eine klasse B die von A abgeleitet wird:
class B { public: B(TYPE t); virtual void test(); };
und das testprogramm:
#include "B.h" int main() { auto_ptr<A> b(new B(WIENER)); // fehler!!! lösung??? b->test(); return 0; }
wie kann ich das problem lösen und feste enum werte im ctor benutzen?
danke
-
ups:
klasse B richtig:class B : public A { public: B(TYPE t); virtual void test(); };
-
Das enum ist Teil der Klasse A - also musst du den richtigen Scope ansprechen.
A* a=new A(A::WIENER);
-
muss es für eine pur virutal funktion nicht virtual void test() = 0 heißen=
-
markus1 schrieb:
hallo
ich habe eine pure virtual class:class A { public: virtual void test(); enum TYPE{WIENER,FRANKFURTER, DEBREZINER}; }
[...]
Nein hast du nicht
1. Gibt es keine pure virtual class. Nur abstrakte Klassen, Protokoll-Klasse, pure virtual Funktionen, virtuelle Basisklassen (bezieht sich auf die Vererbung)...
2. Fehlt für eine abstrakte Klasse (oder eine pure virtual Methode) ein = 0 hinter test.PS:
Aber da da auch ein Semikolon hinter der Klassendefinition fehlt, gehe ich mal davon aus, dass es sich hier um Pseudo-Code handelt