008
23.04.2006, 02:00 Uhr
Spacelord
Hoffnungsloser Fall
|
Hi cmos, angesichts deiner Vererbungsbeziehung gehe ich mal davon aus dass du mit dem Container ,von Lebewesen in CFeld polymorphes Verhalten erzielen möchtest.Dass also,je nachdem ob sich hinter dem CLebewesen Zeiger ein Mensch,Tier oder weiß der Herr was für nen Subtyp-Objekt verbirgt,die entsprechende Methode der Unterklasse aufgerufen wird. Dann darfst du aber kein Array von CLebewesen halten sondern eins mit Zeigern auf CLebewesen Objekte.
Was du also an der relevanten Stelle benötigst sollte etwa so aussehen:
C++: |
class CFeld { private: size_t max_size; CLebewesen **pWesen; public: CFeld(size_t m_):max_size(m_) { pWesen = new CLebewesen*[max_size]; for(size_t idx=0;idx<max_size;++idx) pWesen[idx]=NULL; } ......
|
pWesen hat also den Typ Zeiger auf ein Array von Zeigern auf CLebewesen. Da ein Array aber intern auch als Zeiger interpretiert wird,ist der Typ unterm Strich ein Zeiger auf einen Zeiger auf Lebewesen .
Der Vollständigkeit halber sei noch erwähnt dass man unter normalen Umständen eher mit nem STL Container (und eventuell noch mit geeigneten Smartpointern) arbeiten würde,aber da das für dich ja wohl eher ne Übung sein soll will ich darauf garnicht näher eingehen.
MfG Spacelord -- .....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes. |