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
Lepaskan: 2024-10-26 00:48:02
asal
573 orang telah melayarinya

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>
Salin selepas log masuk

Kod ini akan berjaya disusun dan berfungsi dengan betul apabila dipanggil dengan nilai r, seperti literal:

<code class="cpp">display(5); // OK</code>
Salin selepas log masuk

Walau bagaimanapun, jika const telah dialih keluar daripada parameter rujukan:

<code class="cpp">void display(int& a) {
    cout << a;
}</code>
Salin selepas log masuk

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