Dalam C , objek sementara lazimnya tamat tempoh pada penghujung ungkapan di mana ia muncul, yang berpotensi membawa kepada rujukan berjuntai. Walau bagaimanapun, bahasa ini menawarkan ciri unik yang membolehkan memanjangkan hayat sementara apabila terikat kepada rujukan const.
Kod berikut menunjukkan konsep ini:
<code class="cpp">string foo() { return string("123"); } int main() { const string& val = foo(); printf("%s\n", val.c_str()); return 0; }</code>
Walaupun foo() mengembalikan sementara rentetan, tugasan kepada val rujukan const memanjangkan hayat sementara sehingga rujukan itu sendiri tamat tempoh. Ini adalah tingkah laku yang dimaksudkan mengikut piawaian C, memastikan val sentiasa menunjuk kepada objek yang sah.
Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa pengecualian ini hanya terpakai pada rujukan berasaskan tindanan. Rujukan yang merupakan ahli objek tidak memanjangkan hayat objek sementara terikatnya. Untuk butiran lanjut tentang ciri ini, rujuk Herb Sutter "GotW #88: Calon Untuk "Konst Paling Penting"."
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memanjangkan Jangka Hayat Objek Sementara dalam C Menggunakan Rujukan Const?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!