Rumah >pembangunan bahagian belakang >C++ >Bilakah Argumen Fungsi Sementara Dimusnahkan dalam C?

Bilakah Argumen Fungsi Sementara Dimusnahkan dalam C?

Linda Hamilton
Linda Hamiltonasal
2024-12-16 09:42:12473semak imbas

When Are Temporary Function Arguments Destroyed in 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!

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