Menyalin Kelas dengan Penunjuk Unik dalam C 11
Mencipta pembina salinan untuk kelas yang mengandungi unique_ptr, penunjuk pintar yang menguatkuasakan pemilikan eksklusif , menimbulkan cabaran yang unik. Dalam C 11, mengurus ahli unique_ptr memerlukan pertimbangan yang teliti.
Penyelesaian:
Untuk melaksanakan pembina salinan, anda mempunyai dua pilihan:
class A { std::unique_ptr<int> up_; public: A(int i) : up_(new int(i)) {} A(const A& a) : up_(new int(*a.up_)) {} };
std::shared_ptr<int> sp = std::make_shared<int>(*up_);
Tambahan Pertimbangan:
A(A&& a) : up_(std::move(a.up_)) {}
A& operator=(const A& a) { up_.reset(new int(*a.up_)); return *this; } A& operator=(A&& a) { up_ = std::move(a.up_); return *this; }
Atas ialah kandungan terperinci Bagaimana Cara Menyalin Kelas C 11 yang Mengandungi Ahli `unique_ptr` dengan Betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!