Rumah >pembangunan bahagian belakang >C++ >Mengapakah Saya Boleh Melepasi Nilai R melalui Rujukan Const dalam C ?
Memelihara Nilai R dengan Rujukan Const: A C Puzzle
Dalam C , menghantar nilai r (objek sementara) melalui rujukan const dibenarkan, tidak seperti rujukan biasa . Pertimbangkan atur cara berikut:
<code class="cpp">void display(const int& a) { cout << a; } int main() { int a = 5; display(a); // Works with an lvalue display(5); // Also works with an rvalue return 0; }</code>
Atur cara membenarkan menghantar kedua-dua nilai l dan rnilai ke fungsi paparan, walaupun rujukan ditandakan sebagai const. Tingkah laku ini membingungkan, kerana rujukan const biasanya dikaitkan dengan pemeliharaan nilai.
Sambungan Hayat Rujukan Const
Kunci untuk memahami tingkah laku ini terletak pada semantik rujukan const dalam C . Rujukan const memanjangkan hayat objek yang dirujuk sehingga akhir skop yang mengandungi. Dalam kes rvalue, ini berkesan menghalang pemusnahan objek sementara sehingga rujukan const keluar dari skop.
Contoh: Memanjangkan Rvalue Lifetime
Dalam kami contoh, perkara berikut berlaku apabila paparan(5) dipanggil:
Ini menunjukkan cara rujukan const boleh terus menunjuk kepada nilai, membolehkan ia kekal wujud walaupun ia sebaliknya akan segera dimusnahkan.
Atas ialah kandungan terperinci Mengapakah Saya Boleh Melepasi Nilai R melalui Rujukan Const dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!