null vs. nullptr: Die Ersatzklage
In der Welt der C -Programmierung ereignete sich eine bedeutende Änderung bei der Einführung von NULLPTR in C. 0x, ersetzen Sie die traditionelle Null. Dieser Ersatz stellte Neugier auf und forderte die Frage auf: Warum wurde diese Änderung implementiert?
die Begründung hinter dem Switch
null, hatte in seiner Essenz eine doppelte Natur, posierend, posierend sowohl als "Makro" im C-Stil als auch als legitimer wörtlicher Wert für Zeigertypen. Diese Mehrdeutigkeit könnte zu Verwirrung führen, insbesondere bei überlasteten Funktionsaufrufen. Betrachten Sie das folgende Beispiel:
void f(int); void f(foo *); f(NULL); // Ambiguous, could be either call
Mit der Einführung von NullPtr wurden diese Mehrdeutigkeit gelöst. nullptr ist ein dedizierter Typ (std :: nullptr_t), der explizit einen Nullzeiger bezeichnet. Es ist implizit in jeden Zeigertyp konvertierbar und stellt eindeutig überladungsbeschlüsse. Das Ersetzen von Null durch Nullptr hat dieses Problem beseitigt und eine klarere Unterscheidung zwischen Zeigerwerten und Ganzzahlen liefert. Wesentliche Vorteile:
Verbesserter Typ Sicherheit: Wie bereits erwähnt, verhindert der explizite Typ von Nullptr versehentlich konvertierende Konvertierungen für ganze Zahlen.
Verbessertes Code -Lesbarkeit:
Die Verwendung von Nullptr endet explizit einen Null -Zeiger, der Code lesbarer und aufwaltbarer macht .Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3