1. shared_ptr
解析:
shared_ptr是一种计数指针,当引用计数变为0时,shared_ptr所指向的对象将会被删除。举个例子,如下所示:
1 void test() { 2 shared_ptr p1(new int); // 计数为1 3 { 4 shared_ptr p2(p1); // 计数为2 5 { 6 shared_ptr p2(p1); // 计数为3 7 } // 计数为2 8 } // 计数为1 9 } // 计数为0,同时int对象被删除
2. unique_ptr
解析:
unique_ptr是定义在<memory>中的智能指针(smart pointer)。它持有对对象的独有权,即两个unique_ptr不能指向一个对象,不能进行复制操作只能进行移动操作。
参考文献:
[1] cplusplus:http://www.cplusplus.com/
时间: 2024-11-02 20:27:15