? Weil C + + verwendet einen objektorientierten Programmierung oder OOP-Modell , als Teil seines Designs , Programmierer muss sich mit bestimmten OOP-Konzepte wie Klassen und Objekten. Wenn ein Programmierer ein Objekt für die Verwendung in Code entwickeln möchte, muss sie das Objekt Funktionalität in einem Design " -Klasse. " Eine Klasse definiert die Daten und Funktionen , die ein Objekt verwenden können. Eine besondere Art von Objekt -Funktion , die virtuellen Destruktor , für seine Anwendung bedarf es , dass ein Programmierer die Rolle von Destruktoren in Klassen , das Konzept der Klasse Vererbung zu verstehen, und die Verwendung von virtuellen Funktionen in C + + -Programmierung. Vererbung
Eine Stärke liegt in der OOP Konzept der Vererbung . Wenn ein Programmierer die funktionell eines Objekts erweitern möchte , oder wenn ein Objekt Aktien viel des funktionell eines anderen Objekts mit nur geringen Unterschieden , kann der Programmierer eine Klasse ableiten von einem anderen. Wenn eine Klasse von einer anderen Klasse (der "Basis "-Klasse ) leitet , hat es Zugriff auf die Variablen und Funktionen in der ersten Klasse definiert. In diesem Beispiel leitet Klasse " Ball " von der Klasse " Kugel" und erweitert seine Funktionalität
Klasse Sphere {
public: .
Int getRadius () {
Rendite r ; }
int r ; }
Klasse Ball: Öffentlichkeit {
public:
String Farbe;
}
Virtuelle Funktionen
Da eine abgeleitete Klasse hat Zugriff auf alle Funktionen der Basisklasse es kann sie wie jede Zeit nutzen , als ob es als Basisklasse handelten . Allerdings könnte die abgeleitete Klasse statt ändern einer Funktion in der Basisklasse auf seine Bedürfnisse anzupassen . Ferner könnte eine Basisklasse als Vorlage für abgeleitete Klasse dienen . In diesem Fall wird die Basisklasse Funktionen, ohne zu definieren, was sie tun, zu nennen , statt zu verlassen , dass abgeleitete Klassen . Eine Funktion in einer Basisklasse , die nichts , stattdessen verlässt eine abgeleitete Klasse , sie umzusetzen hat , wird als " virtuelle" Funktion .
Destruktoren
Integral zum Design-Objekt ist die Umsetzung der " Konstrukteur " und " destructor "-Funktionen . Ein Konstruktor -Funktion für eine Klasse definiert , wie ein Objekt aus der Klasse erstellt wird zunächst initialisiert sich (was standardmäßig Datenwerte, die sie enthält , zum Beispiel). Die destructor hingegen bestimmt, was geschieht , wenn ein Objekt aus dem Speicher ( wie die Informationen in dieser gelöscht wird , zum Beispiel) gelöscht wird . Dieses Beispiel zeigt, wie eine Klasse definiert zunächst und Destruktor Funktionen
Klasse Sphere {
Sphere (); . //Konstruktor
~ Sphere (); //Destruktor
}
Virtuelle Destruktoren
Weil, wie Klassen und Destruktoren der Arbeit, wenn eine abgeleitete Klasse aus dem Speicher gelöscht wird, sowohl der Destruktor der abgeleiteten Klasse und der Destruktor der Basisklasse aufgerufen werden muss . Um dies zu erreichen , schaffen Programmierer virtuelle Destruktoren in Basisklassen , dass abgeleitete Klassen definieren können. Dieses Beispiel zeigt eine Basis -Klasse mit einem virtuellen Destruktor und einer abgeleiteten Klasse mit eigenem destructor
Klasse Sphere {
Sphere (); .
Virtual ~ Sphere () { } //die "virtuelle " Schlüsselwort kennzeichnet einen virtuellen Klasse
}
Klasse Ball: Öffentlichkeit {
Ball ( );
~ Kugel (): //Löschen eines "ball" Objekt nennen diese destructor und die Kugel destructor