unique_ptr get函数 unique_ptr get函数 get函数是C++11中为智能指针unique_ptr提供的一个成员函数。通过调用get 函数,可以获取unique_ptr所管理的资源的指针。如果unique_ptr指向的对象已经 被释放,get函数会返回一个空指针。get函数的语法如下:T* get() const noexcept;其中,T代表unique_ptr所管理的对象的类型...
std::shared_ptr<A> insC = insB; //shared_ptr允许直接赋值 另外,shared_ptr是允许直接赋值的,就像上面代码所示的那样,insC和insB这两个智能指针实例最终都指向同一个类A的实例。 shared_ptr由于也重载了绝大多数符号,因此使用起来也和裸指针,没有明显区别。shared_ptr常用的成员函数有以下几个: get():获得...
unique_ptr 一个unique_ptr独占它所指向的对象。当unique_ptr被销毁时,它所指向的对象也被销毁。 初始化unique_ptr时只能使用直接初始化的方式,不能使用普通的拷贝或赋值操作。 unique_ptr<string> p1; //正确 unique_ptr<int> p2(new int(9)); //正确 unique_ptr<string> p3(new string("DAYH")); /...
此外,智能指针有一个get函数,可以得到shared_ptr指向对象的内置指针。 std::shared_ptr<int>p(new int(2)); int *q=p.get();//q为一个内置指针,指向和p同一个对象,注意不要delete q 1. 2. 💥智能指针—unique_ptr 和shared_ptr不同,unique_ptr拥有它所有的唯一对象,这样就保证unique_ptr被销毁时,...
支持弱引用计数,通过std::weak_ptr关联到同一对象,但不会增加引用计数。 成员函数: use_count():返回当前共享对象的引用计数值。 reset():释放当前所拥有的对象(如果存在),可选地接受一个新的裸指针来接管。 get():返回指向对象的原始指针,但不改变所有权。
1. unique_ptr的构造函数可以接受原始指针或者一个std::nullptr_t类型的值作为参数,用于初始化它所管理的对象。 2. unique_ptr的get()函数可以用于获取它所管理的原始指针。 3. unique_ptr的reset()函数可以释放它所管理的对象,并重新指向一个新的对象。 4. unique_ptr的release()函数可以释放它所管理的对象,...
std::unique_ptr<Z> up1; std::unique_ptr<Z> up2(nullptr); std::unique_ptr<Z> up1(new Z(1)); std::unique_ptr<Z> up2(up1); // 错误,不能使用两个unique_ptr指向同一个对象 std::unique_ptr<Z> up3(std::move(up1)); // 正确,可以是用移动构造函数,up1被释放为空指针 get() 可...
unique_ptr可以通过get获取地址, 通过->调用成员函数, 通过*(解引用) 创建方式 (1)通过已有的裸指针创建(建议裸指针设为空,并且及时销毁,不推荐) 示例: #include <stdio.h>#include<iostream>#include<algorithm>#include<vector>#include<Windows.h>usingnamespacestd;//自定义数据类型classPerson {public: ...
unique_ptr的用法如下: 1.创建unique_ptr对象: 可以通过new运算符或make_unique函数创建unique_ptr对象,如下所示: ``` std::unique_ptr<int> ptr1(new int(10)); auto ptr2 = std::make_unique<int>(20); ``` 2.访问指针所指向的对象: 可以使用*运算符或get函数访问指针所指向的对象,如下所示: `...
operator*:解引用操作符,用于获取 shared_ptr 所指向对象的引用。 operator->:箭头操作符,用于通过 shared_ptr 访问对象的成员函数或成员变量。 get:返回指向所管理对象的裸指针。 reset:重置 shared_ptr,释放当前所管理的对象并接管新的对象。 release:释放对所管理对象的控制权,并返回该指针的裸指针。