Dalam pengaturcaraan, penunjuk "ini" merujuk kepada contoh objek semasa dalam fungsi ahli. Ia membenarkan fungsi untuk mengakses data dan kaedah objek. Walau bagaimanapun, satu soalan timbul: Adakah masuk akal untuk menyemak sama ada "ini" adalah batal?
Mari kita pertimbangkan kaedah yang melaksanakan tugas dalam kelas:
<code class="cpp">class MyClass { public: int myFunction() { if (this == nullptr) { return -1; // Error code } ... } }; </code>
Persoalannya ialah sama ada semakan nol ini perlu atau pun sah.
Menurut piawaian C, sebarang panggilan pada penuding nol adalah tingkah laku yang tidak ditentukan. Ini bermakna jika penunjuk "ini" adalah batal, panggilan kaedah adalah tidak sah dan tingkah laku program tidak dapat diramalkan. Oleh itu, dalam standard C , menyemak sama ada "ini" adalah nol adalah tidak wajar.
Walau bagaimanapun, sesetengah pelaksanaan membenarkan penggunaan "ini == 0" untuk fungsi bukan maya. Akibatnya, pustaka yang ditulis khusus untuk pelaksanaan ini mungkin bergantung pada penggodaman ini.
Dalam kes tertentu, semakan nol boleh ditambah sebagai bantuan nyahpepijat untuk menangkap keadaan di mana penunjuk "ini" tiba-tiba batal disebabkan oleh kesilapan seorang pemanggil. Walau bagaimanapun, kaedah pilihan untuk menyahpepijat isu sedemikian ialah menggunakan penegasan.
Selain itu, adalah penting untuk ambil perhatian bahawa menyemak sama ada "ini" adalah batal tidak semestinya bermakna objek itu dipadamkan. Ia hanya menandakan bahawa panggilan kaedah dibuat pada penuding nol atau rujukan yang diperoleh daripada penuding nol, yang merupakan kelakuan yang tidak betul dalam C .
Atas ialah kandungan terperinci Adakah Menyemak \'ini\' untuk Null Pernah Diperlukan dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!