Pelanjutan Rvalue Lifetime oleh Const Rujukan
Dalam C , rujukan const bukan sahaja berfungsi sebagai alias tidak berubah tetapi juga memanjangkan hayat sementara. Mengapakah jawatankuasa C memutuskan untuk melaksanakan gelagat ini?
Satu rasional untuk ciri ini adalah untuk menyembunyikan butiran pelaksanaan daripada kelas dan fungsi. Pertimbangkan kelas matriks yang boleh mengembalikan vektor baris atau vektor lajur. Untuk mengoptimumkan prestasi, kelas boleh memilih untuk mengembalikan rujukan kepada nilai dalaman berdasarkan organisasi baris-utama atau lajur-utamanya. Dengan menghendaki pelanggan menerima nilai pulangan sebagai rujukan const, kelas boleh bertukar antara rujukan dan nilai dengan lancar, melindungi pelanggan daripada butiran pelaksanaan.
Secara sejarah, keputusan untuk melanjutkan hayat nilai berpunca daripada keinginan untuk menangani ketidakkonsistenan dalam cara rujukan mengendalikan sementara pada tahun 1993. Pada masa itu, RVO (pengoptimuman nilai pulangan) tidak wujud. Melarang pengikatan sementara kepada rujukan akan menghukum prestasi dengan ketara. Oleh itu, jawatankuasa memilih penyelesaian yang membenarkan pengikatan sambil memanjangkan hayat sementara untuk memastikan ketersediaannya semasa penggunaan rujukan.
Rasional ini didokumenkan dalam cadangan N0345.pdf, diserahkan kepada jawatankuasa piawaian C pada tahun 1993 . Dengan memanjangkan jangka hayat nilai, rujukan const memudahkan pengabstrakan yang lebih baik, mengekalkan kefleksibelan kod dan mengoptimumkan prestasi apabila mengembalikan objek daripada fungsi.
Atas ialah kandungan terperinci Mengapa Rujukan Const Memanjangkan Jangka Hayat Sementara dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!