Was ist der Unterschied zwischen new- und delete-Operator in C++?

Inhaltsverzeichnis:

Anonim

Die Hauptunterschied zwischen new- und delete-Operator in C++ ist das new wird verwendet, um Speicher für ein Objekt oder ein Array zuzuordnen, während delete verwendet wird, um den mit dem new-Operator zugewiesenen Speicher aufzuheben.

Es gibt zwei Arten von Speicher, nämlich statischen und dynamischen Speicher. Nehmen Sie eine Anweisung wie int a an; int-Array[10]; der Programmierer weiß bereits, wie viel Speicher diese Variablen benötigen. Dieser Speicher ist ein statischer Speicher. Manchmal ist es schwierig zu bestimmen, wie viel Speicher zum Speichern von Daten benötigt wird. Daher sollte der Speicher zur Laufzeit bestimmt werden. Dieser Speichertyp ist ein dynamischer Speicher. In diesen Situationen verwenden wir new- und delete-Operatoren.

C++, Löschoperator, Speicherzuweisung, neuer Operator

Was ist neu in C++

Der neue Operator weist Speicher zu. Siehe untenstehendes Programm.

Abbildung 1: C++-Programm 1 mit neuem Operator

Gemäß dem obigen Programm ist der ptr ein Zeiger vom Typ Integer. In Zeile 7 zeigt ptr auf Speicher vom Typ int. In Zeile 8 zeigt der Wert ptr auf 10. Wenn Sie *p drucken, erhalten Sie den Wert 10.

Ebenso ist es möglich, Arrays mit new wie folgt zu erstellen.

Abbildung 2: C++ Programm 2 mit neuem Operator

Gemäß dem obigen Programm ist ptr ein Zeiger vom Typ Integer. In Zeile 8 zeigt ptr auf den Speicher vom Typ int, der 5 ganzzahlige Elemente speichern kann. Dann werden die ganzzahligen Werte im Array gespeichert. Schließlich durchläuft die for-Schleife das Array und gibt die Werte aus.

Außerdem ist es möglich, mit dem new-Operator neue Objekte anzulegen. Siehe das folgende Beispiel.

Abbildung 3: C++ Programm 3 mit neuem Operator

Die Klasse ist Student und hat den Konstruktor. Im Hauptprogramm ist ptr ein Zeiger vom Typ Student. In Zeile 13 wird der Konstruktor aufgerufen. Daher wird ein Objekt vom Typ Student erstellt. Die cout-Anweisung im Student-Konstruktor wird ausgeführt und diese Anweisung wird auf der Konsole angezeigt.

Was ist in C++ löschen?

Der Löschoperator hilft, Speicher freizugeben. Siehe untenstehendes Programm.

Abbildung 4: C++-Programm 1 mit Löschoperator

Im obigen Programm ist ptr ein Zeiger vom Typ int. In Zeile 7 zeigt es auf int type memory, während es in Zeile 8 den Wert 10 erhält. Außerdem wird in Zeile 11 ptr gelöscht.

Abbildung 5: C++ Programm 2 mit Löschoperator

Gemäß dem obigen Programm ist ptr ein Zeiger vom Typ Integer. In Zeile 8 zeigt ptr auf den Speicher vom Typ int, der 2 Integer-Elemente speichern kann. Dann werden die ganzzahligen Werte im Array gespeichert. In Zeile 12 wird ptr gelöscht. Der Löschoperator gibt den Speicher frei.

Unterschied zwischen new- und delete-Operator in C++

Definition

Kurz gesagt, neu ist ein Operator in C++, der einem Objekt oder einem Array von Objekten Speicher zuweist. Im Gegensatz dazu ist delete ein Operator in C++, der einen Speicherblock freigibt, der zuvor für ein Objekt reserviert wurde, das mit dem new-Operator erstellt wurde. Diese Definitionen enthalten den Hauptunterschied zwischen dem new- und dem delete-Operator in C++.

Verwendungszweck

Abschluss

Der grundlegende Unterschied zwischen dem new- und dem delete-Operator in C++ besteht darin, dass new verwendet wird, um Speicher für ein Objekt oder ein Array zuzuordnen, während delete verwendet wird, um den mit dem new-Operator zugewiesenen Speicher aufzuheben.

Referenz:

1. Neuer OPERATOR IN C – 47, Codearchery, 6. März 2017, hier verfügbar.2. Operator löschen in C – 48, Codearchery, 22. März 2017, hier verfügbar.

Was ist der Unterschied zwischen new- und delete-Operator in C++?