Rumah >pembangunan bahagian belakang >C++ >Berikut ialah beberapa pilihan tajuk berdasarkan kandungan, diformatkan sebagai soalan: * Mengapakah Rvalues Boleh Dilalui oleh Rujukan Const tetapi Bukan Rujukan Bukan Const dalam C ? * Rujukan C Rvalue: Bila Lulus
Rvalue Reference Passing with Const and Non-Const Rujukan
Dalam C , lulus rnilai melalui rujukan const dibenarkan semasa berbuat demikian dengan bukan- rujukan const menimbulkan ralat. Pertimbangkan coretan kod berikut:
<code class="cpp">void display(const int& a) { cout << a; }</code>
Kod ini akan berjaya disusun dan berfungsi dengan betul apabila dipanggil dengan nilai r, seperti literal:
<code class="cpp">display(5); // OK</code>
Walau bagaimanapun, jika const telah dialih keluar daripada parameter rujukan:
<code class="cpp">void display(int& a) { cout << a; }</code>
Memanggil fungsi ini dengan nilai r akan mengakibatkan ralat penyusunan. Ini menimbulkan persoalan: mengapa lulus rnilai melalui rujukan const dibenarkan, tetapi tidak dengan rujukan bukan const?
Memanjangkan Jangka Hayat Pembolehubah Sementara
Jawapannya terletak pada bagaimana C mengendalikan nilai sementara yang dicipta hasil daripada ungkapan. Apabila nilai r digunakan, objek sementara dicipta untuk mengekalkan nilainya. Biasanya, objek sementara tersebut dimusnahkan serta-merta selepas digunakan. Walau bagaimanapun, apabila terikat kepada rujukan const, mereka diberikan jangka hayat lanjutan sehingga akhir skop yang mengandungi.
Faedah Rujukan Const
Menggunakan rujukan const untuk lulus rvalues menawarkan faedah berikut:
Atas ialah kandungan terperinci Berikut ialah beberapa pilihan tajuk berdasarkan kandungan, diformatkan sebagai soalan: * Mengapakah Rvalues Boleh Dilalui oleh Rujukan Const tetapi Bukan Rujukan Bukan Const dalam C ? * Rujukan C Rvalue: Bila Lulus. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!