unique_ptrunique_ptr有七个构造函数。 Typedef 名称描述 deleter_type模板参数Del的同义词。 element_type模板参数T的同义词。 pointer如果已定义,为Del::pointer的同义词,否则为T *的同义词。 函数 名称描述 get返回stored_ptr。 get_deleter返回stored_deleter的引用。
C++语法基本功:类继承、构造、析构与unique_ptr, 视频播放量 6470、弹幕量 1、点赞数 133、投硬币枚数 33、收藏人数 361、转发人数 9, 视频作者 南瓜之运, 作者简介 命运无常,南瓜好吃。,相关视频:C++语法基本功:类的继承、指针及引用,B站C++一面:unique_ptr是怎么实
autoptr=std::make_unique<int>(42); 直接使用std::unique_ptr的构造函数创建对象 可以直接使用std::unique_ptr的构造函数来创建一个智能指针。这通常涉及到使用new操作符。 //MyClass 是要动态创建的对象类型,args... 是传递给 MyClass 构造函数的参数。std::unique_ptr<MyClass>myPtr(newMyClass(args...)...
指针构造函数: std::unique_ptr<T> ptr(new T); 创建一个std::unique_ptr,管理一个通过new运算符分配的对象。 自定义删除器构造函数: 有时候我们需要在释放内存之前执行一些特定的操作,这时可以使用自定义删除器。删除器是一个函数对象,负责在unique_ptr被销毁时调用,从而执行所需的操作。
shared_ptr<int> sp1(p);// 通过普通指针p构造shared_ptr shared_ptr<int> sp2 = sp1;// 复制,sp2也指向p shared_ptr<int> sp3 = make_shared<int>(2);// 通过make_shared构造,make_shared内部调用了new int(2); sp3.reset(new int(3));// 通过reset重置内部数据指针 ...
本视频思维导图与C++面试题文档领取:Mark19929, 视频播放量 1246、弹幕量 10、点赞数 47、投硬币枚数 23、收藏人数 59、转发人数 1, 视频作者 码农Mark, 作者简介 帮助解决C++技术提升/面试就业vx:Mark19929,相关视频:学习C++有没有必要学习boost库?,请选择你的C++IDE
unique_ptr不像shared_ptr一样拥有标准库函数make_shared来创建一个shared_ptr实例。要想创建一个unique_ptr,我们需要将一个new 操作符返回的指针传递给unique_ptr的构造函数。 示例: int main() { // 创建一个unique_ptr实例 unique_ptr<int> pInt(new int(5)); ...
unique_ptr禁止拷贝构造 析构函数 ~unique_ptr(){auto&__ptr=std::get<0>(_M_t);if(__ptr!=nullptr)get_deleter()(__ptr);__ptr=pointer();} 在析构时,释放持有的指针。 3. 符号重载 = 重载 unique_ptr&operator=(unique_ptr&&__u)noexcept{reset(__u.release());get_deleter()=std::forwar...
从编译log来看,use of deleted function ‘std::unique_ptr<_Tp, _Dp>::unique_ptr(const std::unique_ptr<_Tp, _Dp>&) [with _Tp = int; _Dp = std::default_delete<int>]’,具体原因是unique_ptr不允许与其他对象共享所指向对象的内存,已经删除了拷贝构造函数,无法进行拷贝操作。