C++ Grundkurs

Delete-Operator

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Der delete-Operator dient in C++ zur Freigabe des zuvor dynamischen allozierten Speichers.
02:07

Transkript

In dieser Lektion möchte ich auf die Speicherfreigabe in C++ eingehen. In C++ gibt es zwei Arten Speicher freizugeben. Die einfache Form delete und die Form für Arrays delete mit eckigen Klammern. Erst will ich auf die einfache Form eingehen. Wenn Sie ein Objekt mit new allokieren, erhalten Sie einen Speicher und diesen Speicher geben Sie mit delete p wieder frei. Falls das zerstörte Objekt zu einer abgeleiteten Klasse gehört, werden gegebenfalls mehrere Destruktoren aufgerufen. Wenn Sie den Speicher freigegeben haben, indem Sie explizit delete p aufgerufen haben, ist der Zugriff auf das Objekt undefiniert. Undefiniert heißt, der Zugriff kann noch so funktionieren, wie er funktionieren sollte. Das Programm kann auch cashen. Es kann also alles passieren. Undefiniert ist der gleiche Punkt hier bei Stop. Wird ein mit new alloziertes Objekt mit delete [ ] aufgerufen, stellt es ein undefiniertes Verhalten dar. Sie können also nicht ein Objekt so freigeben, wie wenn es ein Array von Objekten wäre. Jetzt gehe ich auf die zweite Form von delete ein. Das delete für die Freigabe von Arrays, explizit von C-Arrays. Sie sehen es hier. Hier allokiere ich mit new 15 Point Objekte. Dementsprechend muss ich hier auch 15 Point Objekte wieder freigeben. Das mache ich dadurch, dass ich explizit die eckigen Klammern verwende. Diese eckigen Klammern sichern zu, dass alle Objekte, die zu den hier allokierten Speicherbereich gehören, freigegeben werden. Für delete mit eckigen Klammern gilt das Gleiche wie für delete ohne eckige Klammern. Wenn Sie ein C-Array mit new [ ] anlegen, müssen Sie es auch wieder mit delete [ ] freigeben. Wenn Sie da etwas vermischen, stellt es ein undefiniertes Verhalten dar. In dieser Lektion habe ich Ihnen delete für die Freigabe von Objekten und delete [ ] für die Freigabe für C-Arrays vorgestellt. Der wichtigste Punkt, den Sie in diesem Zusammenhang beachten müssen ist, wenn Sie ein Objekt mit new anlegen, müssen Sie es Wenn Sie ein C-Array mit new [ ] anlegen, müssen Sie es wieder mit delete [ ] freigeben. Alles andere ist undefiniertes Verhalten.

C++ Grundkurs

Steigen Sie in die mächtige Programmiersprache C++ ein und lernen Sie dabei alle wichtigen Funktionen mit Anwendungsbeispielen kennen.

8 Std. 14 min (147 Videos)
Derzeit sind keine Feedbacks vorhanden...

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!