Contents
Eine virtuelle Funktion ist eine Memberfunktion, die innerhalb einer Basisklasse deklariert und von einer abgeleiteten Klasse neu definiert wird. Wenn Sie mit einem Zeiger oder einer Referenz auf die Basisklasse auf ein abgeleitetes Klassenobjekt verweisen, können Sie eine virtuelle Funktion für dieses Objekt aufrufen und die Version der Funktion der abgeleiteten Klasse ausführen. Virtuelle Funktionen stellen sicher, dass die richtige Funktion für ein Objekt aufgerufen wird, unabhängig vom Ausdruck, der zum Ausführen des Funktionsaufrufs verwendet wird.
Virtuelle Funktionen werden ‘spät’ aufgelöst. Wenn die fragliche Funktion in der Basisklasse “virtuell” ist, wird die Implementierung der Funktion der am meisten abgeleiteten Klasse gemäß dem tatsächlichen Typ des Objekts aufgerufen, auf das verwiesen wird, unabhängig vom deklarierten Typ des Zeigers oder der Referenz. Wenn es nicht „virtuell“ ist, wird die Methode „früh“ aufgelöst und gemäß dem deklarierten Typ des Zeigers oder der Referenz ausgewählt.
Dieses Konzept ist ein wichtiger Teil des (Laufzeit-) Polymorphie-Teils der objektorientierten Programmierung (OOP). Kurz gesagt, eine virtuelle Funktion definiert eine auszuführende Zielfunktion, aber das Ziel ist möglicherweise zur Kompilierzeit nicht bekannt.
Eine rein virtuelle Funktion ist eine virtuelle Funktion, die innerhalb der Klasse keine Definition hat. Ihre Definition liegt nur in der abgeleiteten Klasse, dh die abgeleitete Klasse muss zwingend die Definition einer reinen virtuellen Funktion liefern. Mit anderen Worten, es kann als leere Funktion betrachtet werden, was bedeutet, dass die rein virtuelle Funktion keine Definition relativ zur Basisklasse hat.
Eine Klasse mit rein virtueller Funktion kann nicht verwendet werden, um eigene direkte Objekte zu erzeugen. Das bedeutet, dass die Klasse eine rein virtuelle Funktion enthält, dann können wir das Objekt dieser Klasse nicht erstellen. Dieser Klassentyp wird als abstrakte Klasse bezeichnet. Programmierer müssen die rein virtuelle Funktion in der abgeleiteten Klasse neu definieren, da sie in der Basisklasse keine Definition hat.
Einleitung: Die Begriffe "Freeway" und "Highway" werden oft synonym verwendet, aber es gibt subtile Unterschiede…
Burritos und Enchiladas sind zwei beliebte Gerichte der mexikanischen Küche, die oft miteinander verwechselt werden.…
In der Zellbiologie spielen Replikation und Transkription entscheidende Rollen im genetischen Prozess. Beide sind Mechanismen,…
Osmose und Diffusion sind zwei grundlegende Prozesse, die in der Zellbiologie und Chemie eine entscheidende…
Einleitung: Die Evolution der mobilen Kommunikationstechnologie hat einen bedeutenden Meilenstein erreicht, als 4G (LTE) zu…
Einleitung: JPG und PNG sind zwei gängige Bildformate, die im Internet weit verbreitet sind. Obwohl…