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

Bilakah Argumen Fungsi Sementara Dimusnahkan dalam C?

Linda Hamilton
Lepaskan: 2024-12-16 09:42:12
asal
471 orang telah melayarinya

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));
Salin selepas log masuk

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
Salin selepas log masuk

Atas ialah kandungan terperinci Bilakah Argumen Fungsi Sementara Dimusnahkan dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan