NULL lwn. nullptr: Evolusi Perwakilan Penunjuk Null
Dalam C 0x, makro NULL tradisional telah digantikan dengan nullptr. Perubahan ini bukan semata-mata kosmetik; ia memperkenalkan penambahbaikan ketara pada pengendalian penuding nol bahasa.
Mengapa Penggantian?
NULL, yang ditakrifkan sebagai 0, mewujudkan potensi kesamaran dalam resolusi fungsi terlampau beban. Pertimbangkan kod berikut:
void f(int); void f(foo *);
Jika panggilan ke f(NULL) dibuat, pengkompil tidak pasti sama ada untuk memanggil f(int) atau f(void *). Kekaburan ini diselesaikan dengan menggunakan nullptr, yang mempunyai jenis std::nullptr_t dan boleh ditukar secara tersirat kepada sebarang jenis penunjuk.
Faedah nullptr
Berbanding NULL, nullptr menawarkan beberapa kelebihan apabila bekerja dengan petunjuk:
Atas ialah kandungan terperinci NULL lwn. nullptr: Mengapa Perwakilan Penunjuk Null C Diubah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!