C ++ - Konstrukteure und Zerstörer

C ++ - Konstrukteure und Zerstörer
In C ++ ist Konstruktor ein starkes Merkmal einer Klasse. Wir wissen, dass wir in C ++ verschiedene Klassen erstellt haben. In den Klassen verwenden wir es, um eine Funktion zu machen. Der Konstruktor ist also eine spezielle Art von Mitgliedsfunktion.

Destructor ist auch eine Funktion einer Klasse in C++. Wie der Konstruktor Destructor hat auch einige Besonderheiten. Jetzt diskutieren wir sowohl Konstruktor als auch Destruktor in unserem Thema.

Grundmerkmale des Konstruktors:

  1. Der Konstruktor hat ein eindeutiges Feature: Sowohl der Name des Klassennamens als auch der Konstruktorsname müssen gleich sein.
  2. Der Konstruktor hat keinen Rückgabetyp als normale Funktion. Daher können wir im Konstruktor kein Rückgabeschlüsselwort verwenden.
  3. Konstruktor verhält sich wie eine Funktion, unterscheidet sich jedoch von einer normalen Funktion.

Jetzt schreiben wir ein Programm, wie man einen Konstruktor in einer Klasse macht.

Programmierbeispiel 1:

#enthalten
Verwenden von Namespace STD;
Klassenkomplex

Privatgelände :
int x, y;
öffentlich :
Komplex () // Erstellen Sie einen Konstruktor in der Klasse.

Cout<< “ Example of a Constructor \n ” ;

;
int main ()

Komplexe com;
Rückkehr 0;

Ausgang:

Erläuterung:

Hier erstellen wir eine Klasse namens Komplex. Wir deklarieren zwei Variablen, x und y, unter dem privaten Zugriffsmodifikator. Dann erstellen wir einen Konstruktor in einem öffentlichen Modifikator, der dem Klassennamen ähnelt. Hier schreiben wir kein Rückgabe -Schlüsselwort für den Konstruktor.

Konstruktor wird implizit genannt. Wenn ein Objekt den Speicherkonstruktor erhält, wird standardmäßig ausgeführt.

Klassifizierung des Konstruktors:

In C stehen drei Arten von Konstruktoren zur Verfügung++. Sie sind

  1. Standard.
  2. Parametrisiert.
  3. Kopieren.

A. Standardkonstruktor:

Wenn wir keinen Konstruktor für eine Klasse erstellen und ein Objekt für diese Klasse erstellen, wird der Konstruktor implizit vom Compiler aufgerufen. Diese Art von Konstruktor wird als Standardkonstruktor bezeichnet. Es hat eine besondere Funktion. Es gibt keinen Code in seinem Körper, und es nimmt keine Parameter an.

Programmierbeispiel 2:

#enthalten
Verwenden von Namespace STD;
Klassenkomplex

Privatgelände :
int a, b;
öffentlich :
;
void main ()

Komplexe com;

Ausgang:
Da dieses Programm keine Ausgabeanweisung hat, hat es keine Ausgabe.

Erläuterung:

Hier erstellen wir einen Klassenkomplex. In der komplexen Klasse erstellen wir keinen Konstruktor. Wenn wir jedoch im Main () ein Objekt namens COM erstellen, erstellt der Compiler einen Standardkonstruktor in der Objektdatei. Es wird als Standardkonstruktor bezeichnet. Diese Art von Konstruktor hat keine Codierung in seinem Körper.

B. Parametrisierter Konstruktor:

Wenn wir einige Argumente innerhalb des Konstruktors übergeben wollen, wird dies als parametrisierter Konstruktor bezeichnet.

Programmierbeispiel 3:

#enthalten
Verwenden von Namespace STD;
Klassenkomplex

Privatgelände :
int a, b;
öffentlich :
Komplex (int x, int y) // Erstellen Sie einen parametrisierten Konstruktor.

a = x;
B = y;
Cout<< “ The values of a and b are”
<;
int main ()

Komplexe com (3, 4);
Rückkehr 0;

Ausgang:

Erläuterung:

Der obige Code ist ein Beispiel für einen parametrisierten Konstruktor. Hier passieren wir zwei ganze Zahlen als Argumente x und y innerhalb des komplexen Konstruktors. Wenn wir einige Werte wie 3 und 4 innerhalb des COM -Objekts als COM (3, 4) aus der Hauptfunktion übergeben, geht dieser Wert an den Konstruktor.

C. Konstruktor kopieren:

Wenn ein Klassenobjekt in ein anderes Objekt derselben Klasse kopiert wird, wird es als Kopierkonstruktor bezeichnet. Dies bedeutet, dass beide Objekte den gleichen Wert derselben Klasse haben.

Programmierbeispiel 4:

#enthalten
Klassenbeispiel

int x, y;
öffentlich :
Beispiel (int a, int b) // Erstellen Sie einen Konstruktor in der Klasse.

x = a;
y = b;

void Display ()

Cout << “ The values are : ”
<< x << “ and” << y ;

;
void main ()

Beispiel EX1 (50, 60);
Beispiel ex2 = com1;
EX2.Anzeige() ;

Ausgang:

Erläuterung:

Hier erstellen wir einen parametrisierten Konstruktorennamenkomplex. EX1 ist ein Objekt des Klassenbeispiels. Durch das EX1 -Objekt übergeben wir zwei Werte, 50 und 60. In Display () wird der Ausgang bei 50 und 60 angezeigt.

Jetzt kopieren wir den Wert von EX1 zu einem anderen Objekt, EX2. Das Ergebnis ist das gleiche, wenn wir die Funktion display () über das EX2 -Objekt aufrufen.

Zerstörer:

Ein Destruktor ist ein weiteres mächtiges Merkmal wie der Konstruktor einer Klasse. Sein Name ist der gleiche wie der Name der Klasse, wie wir zuvor im Konstruktor gesehen haben. Aber ein Symbol namens namens Tilde (~) ist ein Destruktor von einem Konstruktor bei der Codierung getrennt.

Es hat auch keinen Rückgabetyp als Konstruktor und kann niemals statisch sein.
Der Hauptunterschied zwischen Konstruktor und Destruktor besteht darin, dass der Destruktor keine Argumente wie den Konstruktor nimmt. Es bedeutet, dass Überladung bei einem Zerstörer nicht möglich ist.

Programmierbeispiel 5:

#enthalten
Verwenden von Namespace STD;
Klassenkomplex

Privatgelände :
int a, b;
öffentlich:
~ Complex () // Erstellen Sie einen Zerstörer in der Klasse.

Cout<< “ Example of a Destructor\n ” ;

;
void spaß ()

Komplexer Des; // Erstellen des Objekts der Klasse

int main ()

Spaß() ;
Rückkehr 0;

Ausgang:

Erläuterung:

Hier erstellen wir einen Destructor -Namenskomplex unter der komplexen Klasse. Jetzt müssen wir wissen, was der Grund, warum wir Destructor verwenden, ist. Der Destruktor wird implizit vom Compiler angerufen, wenn ein Objekt zerstört wird. Es ist ein Missverständnis, dass Zerstörer die Erinnerung an das Objekt zerstören. Tatsache ist, dass Destructor die letzte Methode ist, die ausgeführt wird. Nachdem dieses Objekt sicher zerstört wird, dh in Main (), wenn der Fun () ausgeführt wird, muss das Objekt zerstört werden.

Abschluss:

Nachdem wir das Konzept des Konstruktors und des Zerstörers diskutiert haben, werden wir zu dem Schluss kommen, dass Konstruktor und Destruktor wichtige Mitgliedsfunktionen der Klasse in C sind++. Sowohl Konstruktor als auch Destruktor verbessern die Merkmale der Klasse sehr effizient.