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));
Darüber hinaus kann der Operator new global oder für einzelne Klassen mit der Signatur überladen werden:
void *operator new(size_t);
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);
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!