Melaksanakan Pembina Salinan untuk Kelas dengan Ahli Unique_Ptr
Pertimbangkan kelas dengan pembolehubah ahli jenis std::unique_ptr, yang mewakili pemilikan unik sumber. Apabila membuat salinan objek dengan ahli sedemikian, anda perlu mengendalikan aspek pemilikan unik dengan betul.
Dalam C 11, terdapat dua pendekatan:
Move Constructor and Operators:
Daripada pembina salinan, anda boleh menggunakan pembina bergerak (A(A&& a)) yang memindahkan pemilikan penunjuk unik daripada objek sumber kepada objek baharu. Ini memerlukan penggunaan std::move secara eksplisit untuk menjadikan ahli boleh alih.
Untuk mengendalikan tugasan dengan betul, adalah penting untuk mempunyai operator tugasan (operator=) yang sama ada melakukan salinan dalam atau memindahkan sumber.
Pertimbangan Tambahan:
Apabila bekerja dengan kelas yang mengandungi unik penunjuk dalam bekas (cth., std::vector), anda perlu memutuskan sama ada bekas itu akan mempunyai pemilikan eksklusif atau jika objek boleh disalin secara bebas. Jika pemilikan eksklusif dikehendaki, buat pembina bergerak sahaja dan elakkan mentakrifkan pembina salinan.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Pembina Salin dengan Betul untuk Kelas dengan Ahli `unique_ptr`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!