class Derived : public Base ·
virtual ·
override ·
abstract ·
Polymorphie ·
Mehrfachvererbung
Vererbung und Polymorphie sind Kernkonzepte der objektorientierten Programmierung in C++. Sie ermöglichen die Wiederverwendung von Code und die Entwicklung flexibler, erweiterbarer Systeme.
Vererbung ermöglicht es, eine neue Klasse (abgeleitete Klasse) auf Basis einer bestehenden Klasse (Basisklasse) zu definieren. Die abgeleitete Klasse erbt alle Member der Basisklasse.
| Zugriff | public | protected | private |
|---|---|---|---|
| public Basis-Member | public | protected | private |
| protected Basis-Member | protected | protected | private |
| private Basis-Member | – | – | – |
virtual ermöglicht dynamische Bindung (späte Bindung). Die aufgerufene Methode wird zur Laufzeit anhand des tatsächlichen Objekttyps bestimmt. override markiert überschriebene Methoden.
override markiert explizit, dass eine Methode eine virtuelle Methode der Basisklasse überschreibt. final verhindert die weitere Überschreibung einer Methode oder Vererbung einer Klasse.
Abstrakte Klassen (mit pure virtual Methoden) können nicht instanziiert werden. Sie definieren Interfaces, die von abgeleiteten Klassen implementiert werden müssen.
Polymorphie (Vielgestaltigkeit) bedeutet, dass ein Zeiger oder eine Referenz der Basisklasse auf Objekte abgeleiteter Klassen zeigen kann. Die tatsächliche Methode wird zur Laufzeit basierend auf dem Objekttyp bestimmt.
Mehrfachvererbung ermöglicht es einer Klasse, von mehreren Basisklassen zu erben. Sie muss in C++ explizit verwendet werden und erfordert besondere Aufmerksamkeit bei Namenskonflikten und dem Diamant-Problem.
: public
virtual
override
= 0
Basis*
,
class Derived : public Base ·
virtual void methode() = 0; ·
void methode() override;