Angenommen zu der schon existierenden grafikobjekt
- und
kasten
-Klasse existiere noch eine Klasse versteckbar
:
class versteckbar
{
private:
int versteckt;
public:
versteckbar() : verteckt(0) {};
void verstecken() { versteckt = 1; loesche();}
void zeigen() {versteckt = 0; zeichne();}
int versteckt() {return versteckt;}
virtual void zeichne() = 0;
virtual void loesche() = 0;
};
Man stelle sich nun vor, daß man ein Objekt erzeugen will, daß sowohl ein grafisches Objekt, als auch versteckbar sein soll. Für beide Funktionalitäten haben wir schon entsprechende Klassen definiert und es bietet sich daher an, ein Objekt erzeugen zu können, daß die Eigenschaften beider Klassen besitzt. Ein versteckbarer Kasten würde dann wie folgt definierbar sein:
class hidekasten : public kasten, public versteckbar
{
public:
virtual void zeichne();
virtual void loesche();
};
Die einzige Erweiterung, die eingefügt wurde, ist eine neue Funktion
zeichne()
, da wir ja nun darauf achten müssen, ob der Kasten
sichtbar ist.