Rumah >pembangunan bahagian belakang >C++ >Mengapa Rujukan Nilai Bukan Konst Tidak Boleh Terikat kepada Jenis Tidak Serupa dalam C ?
Rujukan Nilai Bukan Konst Mengikat kepada Jenis Tidak Serupa
Dalam C , rujukan bukan nilai tetap mesti terikat pada nilai yang sama taip. Ini boleh mengelirukan apabila cuba untuk mengikat objek sementara kepada rujukan bukan const, seperti yang ditunjukkan dalam contoh berikut:
int a; const double &m = a; // This is allowed double &m = a; // This produces an error
Ralat, "rujukan nilai bukan const untuk menaip 'double' tidak boleh mengikat kepada nilai jenis 'int' yang tidak berkaitan," menunjukkan bahawa rujukan jenis bukan const tidak boleh mengikat objek yang berbeza taip.
Sebab sekatan ini ialah objek sementara tidak boleh terikat kepada rujukan bukan const. Apabila a ditukar kepada dua kali ganda, objek sementara dicipta. Akibatnya, baris kod berikut:
double &m = a;
Percubaan untuk mengikat rujukan bukan const kepada objek sementara, yang tidak dibenarkan.
Walau bagaimanapun, terdapat pengecualian untuk peraturan ini dalam Visual Studio, di mana sambungan pengkompil membenarkan rujukan bukan const mengikat kepada objek sementara. Walau bagaimanapun, tingkah laku ini tidak standard dan akan mengakibatkan ralat dalam penyusun lain seperti GCC.
Atas ialah kandungan terperinci Mengapa Rujukan Nilai Bukan Konst Tidak Boleh Terikat kepada Jenis Tidak Serupa dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!