Wann sollte „Neu“ in C verwendet werden?
Als Entwickler, der von C#/Java umsteigt, kann das Verständnis der Objektinstanziierung in C verwirrend sein . In diesem Artikel wird erläutert, wann der „neue“ Operator verwendet werden sollte und wann davon abgesehen werden sollte.
Verwendung von „neu“: daraus resultierende Objektlebensdauer
Verwenden Sie „neu“, wenn Sie möchten, dass ein Objekt bestehen bleibt, bis es explizit gelöscht wird. Ohne „neu“ wird das Objekt zerstört, sobald es den Gültigkeitsbereich verlässt. Betrachten Sie die folgenden Beispiele:
void foo() { Point p = Point(0,0); // p is destroyed here } for (...) { Point p = Point(0,0); // p is destroyed after each iteration }
Verwendung von „new“ für Arrays
Arrays in C werden direkt zugewiesen (d. h. auf dem Stapel). Wenn Sie jedoch ein Array mit einer zur Laufzeit festgelegten Größe erstellen müssen, müssen Sie es mit „neu“ zuweisen.
void foo(int size) { Point* pointArray = new Point[size]; ... delete [] pointArray; }
In-Place-Zuweisung (ohne „neu“)
Aus Leistungsgründen ist die direkte Zuweisung vorzuziehen. Dies geschieht automatisch für Objekte, die innerhalb von Klassen deklariert werden.
class Foo { Point p; // p will be destroyed when Foo is };
Bedenken Sie, dass das Zuweisen und Freigeben von Objekten mit „new“ rechenintensiver ist als die direkte Zuweisung. Verwenden Sie es nur bei Bedarf, um unnötigen Aufwand zu vermeiden.
Das obige ist der detaillierte Inhalt vonWann sollte ich den „neuen' Operator in C verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!