Rumah > pembangunan bahagian belakang > C++ > Mengapa Rujukan Bukan Const Tidak Boleh Mengikat Lnilai Pelbagai Jenis dalam C ?

Mengapa Rujukan Bukan Const Tidak Boleh Mengikat Lnilai Pelbagai Jenis dalam C ?

Patricia Arquette
Lepaskan: 2024-11-23 04:30:20
asal
763 orang telah melayarinya

Why Can't Non-Const References Bind to Lvalues of Different Types in C  ?

Mengikat Rujukan Bukan Const kepada Lnilai Pelbagai Jenis

Dalam C , rujukan bukan const lvalue (&) tidak boleh terikat kepada lnilai jenis yang berbeza, seperti yang ditunjukkan oleh contoh di bawah:

int a;
double &m = a; // Error: non-const lvalue reference cannot bind to an lvalue of different type
Salin selepas log masuk

Ini adalah kerana rujukan bukan const m cuba untuk mengikat objek sementara yang dibuat semasa tugasan. Rujukan bukan const tidak boleh terikat kepada sementara.

Walau bagaimanapun, pertimbangkan contoh berikut:

const double &m = a; // Valid
Salin selepas log masuk

Dalam kes ini, rujukan const m terikat pada nilai bukan const, dan penukaran daripada int kepada dua kali ganda dibenarkan. Ini kerana rujukan const melindungi nilai asas daripada diubah suai, menghapuskan potensi rasuah data yang mungkin timbul daripada mengikat rujukan bukan const kepada sementara.

Oleh itu, apabila anda cuba untuk mengikat bukan- rujukan const kepada nilai jenis yang berbeza, ralat akan berlaku disebabkan oleh ketidakupayaan rujukan bukan const untuk mengikat sementara.

Atas ialah kandungan terperinci Mengapa Rujukan Bukan Const Tidak Boleh Mengikat Lnilai Pelbagai Jenis dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan