001
09.11.2006, 13:23 Uhr
ao
(Operator)
|
Könnte man sowas hier ansetzen:
C++: |
class Rasse { };
class Unterrasse : public Rasse { Rasse & oberrasse; };
|
Eine Unterrasse ist eine Rasse mit besonderen Eigenschaften, nämlich, dass sie eine Oberrasse hat?
Dann könntest du die Figur so definieren:
C++: |
class Figur { const Rasse * rasse; };
|
und im Member rasse entweder eine Rasse- oder eine Unterrasse-Instanz festhalten. Über dynamic_cast könntest du zur Laufzeit bestimmen, ob der rasse-Pointer einer gegebenen Figur-Instanz auf Rasse oder auf Unterrasse zeigt, und entsprechend reagieren.
Der Umstand, dass manche Rassen keine Unterrassen haben, wird dann im Programm dadurch abgebildet, dass die Unterrasse einer Figur sowas wie NULL ist.
ao |