Wie löst virtuelle Vererbung das Diamantproblem?
Wie löst virtuelle Vererbung das Diamantproblem?

Video: Wie löst virtuelle Vererbung das Diamantproblem?

Video: Wie löst virtuelle Vererbung das Diamantproblem?
Video: C++ Tutorial #16 - virtual und mehr zu Vererbung 2024, November
Anonim

Virtuelle Vererbung löst der Klassiker Diamantproblem “. Es stellt sicher, dass die untergeordnete Klasse nur eine einzige Instanz der gemeinsamen Basisklasse erhält. Mit anderen Worten, die Snake-Klasse Wille haben nur eine Instanz der LivingThing-Klasse. Die Klassen Animal und Reptile teilen sich diese Instanz.

Was ist in dieser Hinsicht das Diamantenproblem bei der Vererbung?

Die Diamantproblem ” ist eine Mehrdeutigkeit, die als Folge des Zulassens mehrerer Nachlass . Es ist ein ernstes Problem für Sprachen (wie C++), die mehrere zulassen Nachlass des Staates. InJava jedoch mehrere Nachlass ist für Klassen nicht erlaubt, nur für Interfaces, und diese enthalten nicht den Zustand.

Anschließend stellt sich die Frage, wie eine virtuelle Basisklasse bei der Vererbung hilft. Virtuelle Basisklassen bieten eine Möglichkeit, Platz zu sparen und Mehrdeutigkeiten in. zu vermeiden Klasse Hierarchien, die Mehrfachvererbung verwenden. Wenn ein Basisklasse wird als a. angegeben virtuelle Basis , es kann als indirektes fungieren Base mehr als einmalohne Duplizierung seiner Datenelemente.

Wissen Sie auch, was virtuelle öffentliche Vererbung ist?

Virtuelle Vererbung ist eine C++-Technik, die sicherstellt, dass nur eine Kopie der Mitgliedsvariablen einer Basisklasse vorhanden ist vererbt durch Enkel abgeleitete Klassen. Diese Funktion ist am nützlichsten für mehrere Nachlass , wie es das macht virtuell Basis ein gemeinsames Unterobjekt für die abgeleitete Klasse und alle davon abgeleiteten Klassen.

Wie löst Interface das Diamantproblem?

Wie funktioniert mit einem Schnittstelle auf Java lösen das Diamantproblem ? Wenn also zwei Schnittstellen hat dieselbe Methodensignatur und eine Klasse möchte von diesen beiden erben (Implemente in Java). Schnittstellen , es gibt keinen "Methodenkörper" zum Vererben, daher " Diamant Nachlass" Ausgabe wird vermieden.

Empfohlen: