智能指针不需要手动释放内存!!! 太好了
SharedPointer
通过计数的方式实现的。
初始化方式:
1.make_shared
1 | shared_ptr<int> p = make_shared<int>(100); |
2.new
1 | shared_ptr<int> p {new int(100)}; |
释放:
1 | shared_ptr<int> p {new int(100)}; |
指向新对象:
1 | p.reset(new Foo()); |
获取裸指针:
1 | p.get(); |
UniquePointer
一个指针独享一份资源,不允许复制指针,指针销毁自动释放资源。
初始化方式:
1.make_unique
1 | unique_ptr<int> p = make_unique<int>(p); |
2.new
1 | unique_ptr<int> p {new int(100)}; |
释放:
1 | unique_ptr<int> p {new int(100)}; |
指向新对象:
1 | p.reset(new Foo()); |
获取裸指针:
1 | p.get(); |
move
get
解引用