Rumah >pembangunan bahagian belakang >C++ >Berapa Lama Argumen Fungsi Sementara Hidup dalam C ?
Memahami Jangka Hayat Argumen Fungsi Sementara
Apabila menggunakan objek sementara yang dijadikan sebagai argumen fungsi, seperti yang ditunjukkan di bawah:
class MyClass { MyClass(int a); }; myFunction(MyClass(42));
Adalah penting untuk memahami tingkah laku pemusnahan mereka. Piawaian C memberikan cerapan tentang masa pemusnahnya.
Masa Pemusnahan Argumen Sementara
Objek sementara menemui penghujungnya pada akhir ungkapan lengkap yang didiaminya. Ungkapan lengkap menunjukkan ungkapan yang berdiri sendiri, tidak bersarang dalam yang lain. Biasanya, ini sepadan dengan koma bertitik (atau kurungan penutup untuk pernyataan bersyarat, gelung dan suis) yang menetapkan penyiapan pernyataan. Dalam contoh yang diberikan, ungkapan lengkap ditamatkan dengan panggilan fungsi.
Memanjangkan Jangka Hayat Sementara
Perlu diperhatikan bahawa jangka hayat sementara boleh dilanjutkan dengan merujuknya sebagai rujukan berterusan. Strategi ini memanjangkan jangka hayat mereka agar sepadan dengan rujukan:
MyClass getMyClass(); { const MyClass& r = getMyClass(); // full expression ends here ... } // object returned by getMyClass() is destroyed here
Menggunakan teknik ini boleh mengoptimumkan prestasi dengan mengelakkan seruan pembina salinan yang tidak perlu berbanding dengan menggunakan MyClass obj = getMyClass();. Walau bagaimanapun, kelazimannya agak rendah.
Atas ialah kandungan terperinci Berapa Lama Argumen Fungsi Sementara Hidup dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!