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

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

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-26 00:48:02517semak imbas

Here are some title options based on the content, formatted as questions: 

* Why Can Rvalues Be Passed by Const Reference but Not Non-Const Reference in C  ? 
* C   Rvalue References: When is Passing by Const Reference Allowed but Non-Const Raises Errors

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:

  • Peningkatan Prestasi: Ia mengelakkan keperluan untuk pembinaan salinan yang tidak perlu, menghasilkan prestasi yang lebih baik.
  • Kawalan Sepanjang Hayat Objek : Rujukan Const memastikan objek sementara kekal sah sehingga fungsi tamat, menghalang rujukan berjuntai.
  • Keselamatan Jenis: Rujukan Const mengekalkan ketepatan const kod, mengelakkan kemalangan pengubahsuaian nilai r.

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!

Kenyataan:
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