Was ist Funktionsvererbung?
Funktionsvererbung ist eine Technik in C++, die in einer abgeleiteten Klasse definierte Methoden mit in einer Basisklasse definierten Methoden verknüpft. Es ermöglicht abgeleiteten Klassen, auf Methoden der Basisklasse zuzugreifen und diese zu überschreiben, wodurch die Funktionalität der Basisklasse erweitert wird.
"ist-ein"- und "hat-ein"-Beziehung
Bei der Funktionsvererbung bedeutet "ist-ein"-Beziehung, dass die abgeleitete Klasse ein Untertyp der Basisklasse ist, d. h. die abgeleitete Klasse. erbt" Die Eigenschaften und das Verhalten der Basisklasse. Die „hat-a“-Beziehung bedeutet, dass die abgeleitete Klasse eine Referenz oder einen Zeiger auf das Basisklassenobjekt enthält, d. h. die abgeleitete Klasse „besitzt“ das Basisklassenobjekt.
Syntax
Das Folgende ist die Syntax zum Implementieren der Funktionsvererbung:
class DerivedClass : public BaseClass { public: // 派生类中定义的方法(可能会重写基类方法) };
Praktischer Fall
Lassen Sie uns die Funktionsvererbung anhand eines einfachen Beispiels verstehen:
Basisklasse Shape
class Shape { public: virtual void draw() { // 基类绘图行为 } };
Abgeleitet Klasse Rechteck
Die abgeleitete Klasse Rechteck „ist eine“ Form, das heißt, Rechteck ist ein Formtyp. Sie erbt die Methode draw() von Shape und überschreibt sie, um ein spezifisches Zeichenverhalten für Rechtecke bereitzustellen:
class Rectangle : public Shape { public: virtual void draw() override { // 派生类绘图行为(绘制矩形) } };
Verwendungsbeispiel
Jetzt können wir die Klasse „Rectangle“ verwenden, um Objekte zu erstellen und die Methode draw() aufzurufen:
Rectangle rectangle; rectangle.draw(); // 调用派生类中重写的绘图行为
Fazit
Durch das Verständnis der „ist-ein“- und „hat-ein“-Beziehungen können Sie die Funktionsvererbung effektiv nutzen, um die Funktionalität von C++-Klassen zu erweitern und besser organisierten und wartbareren Code zu erstellen.
Das obige ist der detaillierte Inhalt vonAusführliche Erklärung der C++-Funktionsvererbung: Wie versteht man die Beziehung „is-a' und „has-a' bei der Vererbung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!