Rumah >pembangunan bahagian belakang >C++ >Mengapa Saya Tidak Boleh Menetapkan Objek Sementara kepada Rujukan Bukan Const dalam C ?
Mengapa Rujukan Bukan Const kepada Objek Sementara Dilarang
C melarang memberikan objek sementara kepada rujukan bukan const. Sekatan ini berpunca daripada fakta bahawa objek sementara hilang selepas pernyataan di mana ia dicipta. Membenarkan rujukan bukan const kepada objek sementara boleh membawa kepada tingkah laku yang tidak ditentukan.
Pertimbangkan kod berikut:
String& a = String("test"); // Error
Kod ini cuba untuk menetapkan objek String sementara kepada rujukan bukan const a . Walau bagaimanapun, ini tidak dibenarkan kerana a bukan rujukan const dan objek sementara tidak boleh diubah suai.
Beberapa sebab biasa untuk sekatan ini termasuk:
C membenarkan membaca daripada objek sementara tetapi tidak menulis kepada mereka kerana membaca tidak mengubah keadaan objek. Walau bagaimanapun, menulis kepada objek sementara mungkin mempunyai akibat yang tidak dijangka, kerana objek itu mungkin dimusnahkan sebelum operasi tulis selesai.
Oleh itu, untuk mengelakkan masalah yang berpotensi ini, C mengehadkan rujukan bukan const kepada objek sementara, sementara masih membenarkan rujukan const untuk tujuan bacaan yang selamat. Sekatan ini membantu memastikan ketepatan program dan menghalang tingkah laku yang tidak ditentukan yang boleh terhasil daripada mengubah suai objek sementara.
Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Menetapkan Objek Sementara kepada Rujukan Bukan Const dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!