Rumah >pembangunan bahagian belakang >C++ >Bilakah Argumen Fungsi Sementara Dimusnahkan dalam C?
Argumen Fungsi Sementara: Masa Pemusnahan
Apabila mencipta objek sementara sebagai argumen fungsi, mengurus hayatnya adalah penting untuk ketepatan program. C menentukan jangka hayat sementara ini.
Dalam contoh yang disediakan:
class MyClass { MyClass(int a); }; myFunction(MyClass(42));
C menjamin bahawa pemusnah untuk objek MyClass sementara dipanggil pada penghujung ungkapan penuh bahawa objek adalah sebahagian daripadanya. Ungkapan penuh biasanya berakhir pada koma bertitik ; atau penamat kenyataan lain. Dalam kes ini, ungkapan penuh berakhir pada kurungan penutup panggilan fungsi myFunction().
Oleh itu, anda boleh menganggap bahawa pemusnah objek sementara akan dipanggil sebelum pelaksanaan pernyataan seterusnya selepas panggilan fungsi .
Perhatikan bahawa memanjangkan hayat sementara melebihi ungkapan penuh adalah mungkin dengan mengikatnya pada rujukan const. Ini memanjangkan hayat mereka kepada jangka hayat rujukan, seperti yang digambarkan dalam contoh berikut:
MyClass getMyClass(); { const MyClass& r = getMyClass(); // full expression ends here ... } // object returned by getMyClass() is destroyed here
Atas ialah kandungan terperinci Bilakah Argumen Fungsi Sementara Dimusnahkan dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!