Apabila bekerja dengan kelas pihak ketiga yang memerlukan mekanisme pemadaman tertentu, anda mungkin menghadapi senario di mana anda perlu gunakan pemadam tersuai dengan pembolehubah ahli std::unique_ptr. Artikel ini menyediakan penyelesaian untuk mencapai perkara ini.
Bayangkan anda mempunyai kelas Foo dengan pembolehubah ahli jenis std::unique_ptr. Dalam senario ini, Bar kelas pihak ketiga mempunyai fungsi create() dan destroy() khusus untuk penciptaan dan pemusnahan objek.
Dalam fungsi kendiri, anda boleh menggunakan pemadam tersuai dengan std::unique_ptr seperti berikut:
void foo() { std::unique_ptr<Bar, void(*)(Bar*)> bar(create(), [](Bar* b){ destroy(b); }); ... }
Untuk mencapai kefungsian yang sama apabila bekerja dengan pembolehubah ahli, berikut ialah penyelesaiannya:
class Foo { std::unique_ptr<Bar, void(*)(Bar*)> ptr_; // ... public: Foo() : ptr_(create(), destroy) { /* ... */ } // ... };
Dalam kod ini:
Pendekatan ini membenarkan anda untuk menggunakan pemadam tersuai untuk pembolehubah ahli std::unique_ptr dengan mudah, memastikan pengurusan sumber yang betul walaupun untuk pihak ketiga kelas.
Atas ialah kandungan terperinci Bagaimana untuk Menggunakan Penghapus Tersuai dengan Pembolehubah Ahli `std::unique_ptr`? ```. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!