参考答案
结论:unique_ptr是独占所有权智能指针,手撕需实现移动语义并禁止拷贝。核心要点:1. 内部持有裸指针T* ptr和删除器(默认delete);2. 析构调用删除器释放资源;3. 禁用拷贝构造和拷贝赋值(=delete);4. 实现移动构造和移动赋值:转移ptr并将源置空,注意自移动赋值安全;5. 提供reset()、release()、get()、operator*和->。示例:template<typename T> class unique_ptr { T* ptr; public: unique_ptr(T* p=nullptr):ptr(p){} ~unique_ptr(){delete ptr;} unique_ptr(unique_ptr&& o):ptr(o.ptr){o.ptr=nullptr;} ... };