Wann benötigen Sie das neue Schlüsselwort in C?
In C haben Sie zwei Möglichkeiten zum Erstellen von Objekten: Verwenden des neuen Schlüsselworts oder nicht.
Verwenden neu
MyClass* myClass = new MyClass();
myClass->MyField = "Hello world!";
- Reserviert Speicher für das Objekt auf dem Heap (freier Speicher).
- Erfordert explizites Löschen, um den zugewiesenen Speicher freizugeben.
- Der Speicher bleibt reserviert, bis er gelöscht wird, auch wenn das Objekt den Gültigkeitsbereich verlässt.
Nicht verwendet neu
MyClass myClass;
myClass.MyField = "Hello world!";
- Reserviert Speicher für das Objekt auf dem Stapel.
- Kein explizites Löschen erforderlich.
- Speicher wird automatisch freigegeben, wenn das Objekt gelöscht wird außerhalb des Geltungsbereichs.
Auswahl Überlegungen
Welche Methode Sie verwenden sollten, hängt von Ihren spezifischen Anforderungen ab:
-
Neu verwenden:
- Um Objekte auf dem Heap zu erstellen.
- Zeiger auf Objekte zurückgeben von Funktionen.
-
Nicht neu verwenden:
- Um die manuelle Verwaltung des Speichers und mögliche Speicherlecks zu vermeiden.
- Um Objekte zu erstellen, die den Strom nicht verlassen Umfang.
Zusätzliche Hinweise
- Die Verwendung von new erfordert die Verwendung von delete, um den zugewiesenen Speicher freizugeben. Dadurch sollen Speicherlecks verhindert werden.
- new wird üblicherweise zum Erstellen von Objekten auf dem Heap verwendet, während die Nichtverwendung von new normalerweise für im Stapel zugewiesene Objekte verwendet wird.
- Der Stapel hat weniger Speicherkapazität als Daher kann die Zuweisung zu vieler Objekte auf dem Stapel zu einem Stapelüberlauf führen.
Das obige ist der detaillierte Inhalt vonWann sollten Sie das Schlüsselwort „new' in C verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn