Rumah >pembangunan bahagian belakang >C++ >## Bagaimana Saya Boleh Mengelak Pembolehubah Membayangi dalam Kelas C?
Membayangkan Pembolehubah dalam C
Membayangkan Pembolehubah, fenomena di mana pembolehubah dengan nama yang sama diisytiharkan dalam skop berbeza dalam atur cara, boleh membawa kepada kekeliruan dan tingkah laku yang tidak dijangka.
Dalam konteks kelas C, seperti yang ditunjukkan dalam coretan kod yang disediakan, isu ini boleh timbul apabila pembolehubah tempatan diisytiharkan dalam fungsi ahli yang berkongsi nama yang sama dengan pembolehubah ahli .
Memahami Bayangan
Dalam contoh, pembolehubah ahli T dan set_ukuran ditakrifkan dalam kelas Measure, manakala pembolehubah tempatan T diisytiharkan dalam kaedah get. Apabila pembolehubah tempatan ini diberikan nilai, ia membayangi pembolehubah ahli dengan nama yang sama.
Ini berlaku kerana pengkompil mencari definisi pembolehubah dalam skop semasa dahulu. Memandangkan pembolehubah tempatan wujud dalam kaedah get, ia lebih diutamakan daripada pembolehubah ahli.
Cara Mengelakkan Pembayang
Salah satu cara untuk mengelakkan pembayang berubah adalah dengan menggunakan awalan atau akhiran untuk pembolehubah ahli. Sebagai contoh, amalan biasa ialah menambah awalan "m_" untuk menunjukkan pembolehubah ahli. Ini membantu membezakannya daripada pembolehubah setempat.
Kod Contoh
Berikut ialah versi diubah suai bagi kelas Measure yang menggunakan awalan untuk mengelakkan pembayang:
Dalam contoh ini, pembolehubah ahli telah diawali dengan "m_" untuk mengelakkan bayangan. Kaedah get kini menggunakan pembolehubah ahli secara langsung tanpa sebarang konflik penamaan.
Kesimpulan
Memahami pembayang pembolehubah adalah penting untuk menulis kod C yang jelas dan betul. Menggunakan awalan atau akhiran untuk pembolehubah ahli boleh membantu mengelakkan kekeliruan dan memastikan pembolehubah yang betul sedang diakses dalam skop yang berbeza.
Atas ialah kandungan terperinci ## Bagaimana Saya Boleh Mengelak Pembolehubah Membayangi dalam Kelas C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!