kleines problem mit blöcken
-
poste entsprechende teile von Block und Holz
-
Block.h: class Block { public: virtual void tuetwas(); } Block.cpp: void Block::tuetwas() { ... } Holz.h class Holz : public Block { public: void tuetwas() { ... } }
Sry für fehler mach das aus dem kopf
Thx openglfreak
-
wenn du den fehler finden willst, waere das orginal schon wichtig, kann sein dass du deinen funktionsnamen oder parametertyp leicht unterschiedlich geschrieben hast und schwubs laeuft es nicht.
es bietet sich an die funktion in block pure virtual zu machen indem du es so schreibst:
virtual void tuetwas()=0;
das bedeutet, du hast keine implementierung davon, nur eine deklaration, auf diese weise MUSS die methode der abgeleitetten klasse aufgerufen werden oder wenigstens ein kompilierfehler wenn etwas nicht stimmt.
-
Dann kommt der Kompilierfehler:
invalid abstract type 'Block' for 'array'
-
*facepalm*
Um Polymorphie zu nutzen, musst du natürlich Zeiger auf Block übergeben, sonst klappt das alles nicht!
-
openglfreak schrieb:
Dann kommt der Kompilierfehler:
invalid abstract type 'Block' for 'array'da bleibe ich bei:
rapso schrieb:
openglfreak schrieb:
Block blocks[1024]; // ... blocks[i] = new Holz();
das duerfte doch nichtmal kompilieren.