Menggunakan Penghapus Tersuai dengan Ahli std::unique_ptr
Dalam pengaturcaraan berorientasikan objek, selalunya wajar untuk menggunakan objek ahli yang diurus oleh unik penunjuk (std::unique_ptr). Walau bagaimanapun, apabila berurusan dengan kelas pihak ketiga yang mempunyai keperluan pengurusan memori tersuai, menggunakan pemadam tersuai boleh terbukti bermanfaat.
Pertimbangkan senario di mana anda mempunyai kelas (Foo) dengan ahli yang diuruskan oleh penunjuk unik ( std::unique_ptr
Untuk menangani perkara ini, anda boleh melaksanakan pemadam tersuai dalam kelas Foo anda, menggunakan sintaks yang serupa dengan yang berikut:
class Foo { private: std::unique_ptr<Bar, void(*)(Bar*)> ptr_; // ... public: Foo() : ptr_(create(), destroy) { /* ... */ } // ... };
Dalam contoh ini, create() dan destroy() diandaikan sebagai fungsi bebas yang mematuhi perkara berikut tandatangan:
Bar* create(); void destroy(Bar*);
Dengan menentukan musnahkan sebagai hujah templat kedua penuding unik, anda secara berkesan mengarahkan penuding untuk memanggil destroy() apabila objek terurus dipadamkan.
Pendekatan ini membenarkan anda untuk menguruskan memori objek ahli pihak ketiga anda dengan lancar sambil mengekalkan faedah menggunakan petunjuk unik, seperti urusan pembahagian sumber automatik dan pemilikan semantik.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Penghapus Tersuai dengan Ahli std::unique_ptr untuk Kelas Pihak Ketiga?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!