Apabila bekerja dengan ahli std::unique_ptr dalam kelas, terdapat keadaan di mana pemadam tersuai mungkin dikehendaki. Ini amat relevan apabila objek ahli memerlukan prosedur pembersihan atau pemusnahan khusus.
Pertimbangkan senario di mana kelas anda mempunyai ahli std::unique_ptr
Dalam fungsi kendiri, anda boleh menggunakan std::unique_ptr dengan pemadam tersuai seperti:
void foo() { std::unique_ptr<Bar, void(*)(Bar*)> bar(create(), [](Bar* b) { destroy(b); }); ... }
Sekarang, mari kita sesuaikan pendekatan ini kepada situasi di mana std::unique_ptr digunakan sebagai ahli dalam kelas yang dipanggil Foo:
class Foo { private: std::unique_ptr<Bar, void(*)(Bar*)> bar_; ... public: Foo() : bar_(create(), destroy) { /* ... */ } // ... };
Perhatikan bahawa tiada lambda atau pemadam tersuai diperlukan dalam pelaksanaan ini kerana musnah sendiri berfungsi sebagai pemadam. Ini membolehkan cara yang bersih dan ringkas untuk mengurus pemilikan unik ahli Peguam sambil menggunakan prosedur pemusnahan tersuainya.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Pemadam Tersuai dengan Pembolehubah Ahli `std::unique_ptr`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!