Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah std::shared_ptr Memastikan Panggilan Pemusnah yang Betul Semasa Pembersihan?
Pengenalan
Penggunaan std::shared_ptr
Taip Pemadaman dalam std::shared_ptr
Kunci untuk memahami tingkah laku ini terletak pada cara std::shared_ptr melakukan pemadaman jenis. Apabila dibuat, penuding kongsi menyimpan fungsi pemadam yang menentukan cara objek terurusnya harus dimusnahkan. Pemadam ini boleh dinyatakan secara eksplisit atau lalai untuk memadamkan objek menggunakan padam.
Memelihara Maklumat Pemusnah
Apabila shared_ptr disalin atau dibina daripada yang lain, fungsi pemadam ialah terpelihara. Ini bermakna walaupun semasa menghantar daripada std::shared_ptr
Ilustrasi Contoh
Kod yang disediakan dalam soalan menunjukkan kefungsian ini. Baris berikut menerangkan tingkah laku:
<code class="cpp">v.push_back(std::shared_ptr<test>(new test()));</code>
Di sini, shared_ptr kepada contoh ujian kelas dicipta dan ditambahkan pada vektor v.
<code class="cpp">v.push_back(static_cast<std::shared_ptr<void>>(v.back()));</code>
Share_ptr untuk diuji kemudiannya hantar secara eksplisit ke std::shared_ptr
Pematuhan Standard
Tingkah laku std::shared_ptr
Kesimpulan
While std::shared_ptr
Atas ialah kandungan terperinci Bagaimanakah std::shared_ptr Memastikan Panggilan Pemusnah yang Betul Semasa Pembersihan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!