So Instanziieren Sie Eine Klasse

Inhaltsverzeichnis:

So Instanziieren Sie Eine Klasse
So Instanziieren Sie Eine Klasse

Video: So Instanziieren Sie Eine Klasse

Video: So Instanziieren Sie Eine Klasse
Video: Instanzvariablen, Klassenvariablen und Konstruktor 2024, Dezember
Anonim

Das objektorientierte Programmierparadigma ist in allen modernen Werkzeugen und Sprachen zur Erstellung von Software weit verbreitet. Der Industriestandard ist heute die objektorientierte Programmiersprache C++. Sie können eine Instanz einer Klasse in C ++ auf verschiedene Weise erstellen.

So instanziieren Sie eine Klasse
So instanziieren Sie eine Klasse

Es ist notwendig

C++-Compiler

Anleitung

Schritt 1

Instanziieren Sie die Klasse als Autovariable im lokalen Gültigkeitsbereich, der durch eine Funktion, Klassenmethode oder einen Anweisungsblock definiert wird. Verwenden Sie eine deklarative oder zwingende Definition eines Klassenobjekts an einer ausgewählten Stelle in Ihrem Programm. Rufen Sie bei Bedarf einen beliebigen Konstruktor mit Parametern explizit auf. Erstellen Sie ein Objekt mit Code ähnlich dem folgenden: void CMyClass:: SomeMethod () {COtherClass oSomeObject1; // erzeuge ein Objekt mit dem Standardkonstruktor COtherClass oSomeObject2 (1980, "Victor V. Vakchturov"); // Erstellen eines Objekts mit einem Konstruktor mit Parametern} Speicher für Objekte von Klassen, die auf ähnliche Weise wie für alle anderen Autovariablen erstellt wurden, wird auf dem Stack zugewiesen. Wenn Sie den Bereich verlassen und den Stapelrahmen entfernen, wird das Objekt daher zerstört (mit einem Aufruf des Destruktors).

Schritt 2

Erstellen Sie mit dem new-Operator eine Instanz der Klasse im Heap. Definieren Sie eine Variable vom Typ Zeiger auf Objekte der zu instanziierenden Klasse. Geben Sie ihm einen Wert ein, der das Ergebnis der Auswertung des neuen Operators ist. Rufen Sie den entsprechenden Konstruktor auf. Verwenden Sie einen Codeausschnitt ähnlich dem folgenden: CSomeClass * poSomeObject; // Definition eines Zeigers auf Objekte der Klasse CSomeClasspoSomeObject = new CSomeClass; // Erzeuge ein Objekt der Klasse CSomeClass * poSomeObject_2 = new CSomeClass (111, "3V"); // Erstellung mit Aufruf des Konstruktors mit Parametern Beim Erstellen von Objekten mit dieser Methode wird der durch den new-Operator definierte Speicherzuweisungsmechanismus verwendet (sofern er nicht überschrieben und seine eigene Zuweisungsfunktion nicht gesetzt ist), also die Adresse des neues Objekt ist nicht im Voraus bekannt. Alle so erstellten Objekte müssen mit dem Löschoperator explizit gelöscht werden.

Schritt 3

Erstellen Sie eine Instanz der Klasse mit dem new-Operator auf einem selbst zugewiesenen Speicherblock. Verwenden Sie folgenden Code: void * p0 = malloc (sizeof (CSomeClass)); // Speicherzuweisung void * p1 = malloc (sizeof (CSomeClass)); // Speicherzuweisung new (p0) CsomeClass; // das Objekt im zugewiesenen Speicher initialisieren (Standardkonstruktor) new (p1) CSomeClass (111, "abc"); // Objektinitialisierung (Konstruktor mit Parametern) Bevor Sie mit dieser Methode erstellte Objekte zerstören, sollten Sie ihren Destruktor explizit aufrufen: ((CSomeClass *) p0) -> ~ (); Das Erstellen von Objekten auf diese Weise wird hauptsächlich in Vorlagencontainerklassen von verwendet verschiedene Bibliotheken (wie STL).

Empfohlen: