Heim > Backend-Entwicklung > C++ > Wann sollte ich den „neuen' Operator in C verwenden?

Wann sollte ich den „neuen' Operator in C verwenden?

DDD
Freigeben: 2024-11-30 10:51:11
Original
812 Leute haben es durchsucht

When Should I Use the

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
}
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

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
};
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage