Heim > Backend-Entwicklung > C++ > Was ist der Unterschied zwischen „Operator new' und dem „new'-Operator in C?

Was ist der Unterschied zwischen „Operator new' und dem „new'-Operator in C?

Barbara Streisand
Freigeben: 2024-12-11 00:16:08
Original
495 Leute haben es durchsucht

What's the Difference Between `operator new` and the `new` Operator in C  ?

Operator New vs. New Operator: Ein tieferer Einblick

Obwohl „neuer Operator“ und „neuer Operator“ oft synonym verwendet werden, besitzen sie unterschiedliche Rollen in der C-Speicherverwaltung.

Operator Neu

Operator neu ist eine Funktion, die Rohspeicher aus dem freien Speicher zuweist. Es ist auf niedriger Ebene und vom Konzept her ähnlich wie malloc(). Typischerweise wird es jedoch direkt in benutzerdefinierten Containern oder für bestimmte Szenarien verwendet. Der Operator new kann explizit wie folgt aufgerufen werden:

char *x = static_cast<char *>(operator new(100));
Nach dem Login kopieren

Darüber hinaus kann der Operator new global oder für einzelne Klassen mit der Signatur überladen werden:

void *operator new(size_t);
Nach dem Login kopieren

Neuer Operator

Der neue Operator hingegen wird normalerweise zum Erstellen von Objekten im kostenlosen Store verwendet. Im Gegensatz zu „Operator new“ wird nicht einfach nur Speicher zugewiesen; Es reserviert Speicher und ruft den Klassenkonstruktor auf. Dadurch wird ein vollständig initialisiertes Objekt im Speicher erstellt, einschließlich aller eingebetteten oder von Basisklassen geerbten Objekte.

my_class *x = new my_class(0);
Nach dem Login kopieren

Hauptunterschied

Der grundlegende Unterschied zwischen Operator new und Der neue Operator bedeutet, dass der Operator new Rohspeicher zuweist, während der neue Operator nicht nur Speicher zuweist, sondern auch das Objekt an dieser Stelle initialisiert. Der neue Operator verlässt sich bei der Speicherzuweisung auf den Operator new, führt die Objektinitialisierung jedoch automatisch durch.

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen „Operator new' und dem „new'-Operator in C?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage