Rumah >pembangunan bahagian belakang >C++ >Bilakah Anda Harus Menggunakan `nullptr` dalam C ?
Bila Menggunakan nullptr
Dalam kod C, penunjuk boleh dimulakan kepada nilai setara secara konsep: nullptr, NULL, atau 0. Sementara ini nilai semua menunjukkan penunjuk nol, nullptr menawarkan beberapa kelebihan.
Invokasi Fungsi Terlebih Beban
Pertimbangkan fungsi terlampau beban berikut:
void f(char const *ptr); void f(int v);
Dalam ketiadaan nullptr, panggilan berikut akan membawa kepada kekaburan:
f(NULL); //which function will be called?
Walau bagaimanapun, menggunakan nullptr menjelaskan penggunaan fungsi yang dimaksudkan:
f(nullptr); //first function is called
Pengkhususan Templat untuk nullptr
Selain itu, nullptr membenarkan pengkhususan templat khusus untuk penunjuk nol. Pertimbangkan templat berikut:
template<typename T, T *ptr> struct something{}; //primary template
Pengkhususan separa berikut boleh ditakrifkan untuk nullptr:
template<> struct something<nullptr_t, nullptr>>{}; //partial specialization for nullptr
Ini membolehkan mencipta lebihan khusus untuk mengendalikan argumen nullptr:
template<typename T> void f(T *ptr); //function to handle non-nullptr argument void f(nullptr_t); //an overload to handle nullptr argument!!!
Type Deduction for nullptr
Dalam templat, jenis nullptr disimpulkan sebagai nullptr_t. Ini memudahkan kod, seperti yang dilihat di bawah:
template<typename T> void f(T *ptr); //function to handle non-nullptr argument void f(nullptr_t); //an overload to handle nullptr argument!!!
Atas ialah kandungan terperinci Bilakah Anda Harus Menggunakan `nullptr` dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!