0
点赞
收藏
分享

微信扫一扫

unique_ptr的一些理解

星河出山 2022-04-08 阅读 57
c++

release 
  返回一个指向被管理对象的指针,并释放所有权, 死之前把权利交出来void * a = b.release()
  没有释放(release)内存,只是b变成了nullptr
swap 易子而食
reset 鸠占雀穴
unique_ptr 一夫一妻制
move 移动语义, 两个指针不能直接赋值,只能加这句话a = move(b),内部有a原来指向的内存释放的发生

make_unique<A>();
unique_ptr<A>(new A)

#include <iostream>
#include <memory>
#include <vector>

using namespace std;
class A {

};
vector<unique_ptr<A>> fun() {
  vector<unique_ptr<A>> res;
  for (int i = 0; i < 4; i++) {
    auto ptr_tmp = make_unique<A>();
    res.push_back(move(ptr_tmp));
  }
  return res;
}
int main() {
  auto res = fun();
  std::cout << "Hello, World!" << std::endl;
  return 0;
}

https://www.cnblogs.com/wuyepeng/p/9741241.html

函数到底发生了什么return之后,应该是直接用的是一个了

举报

相关推荐

0 条评论