<pre class="cpp" name="code"><pre class="cpp" name="code">#include <iostream>
#include <memory>
#include <assert.h>
using namespace std;
int main(int argc, char* argv[])
{
int *p1 = new int(10);
int *p2 = new int(10);
p2 = p1;
std::shared_ptr<int> sp(new int(10));//一个指向整数的shared_ptr
// std::shared_ptr<int> sp(p1);
// std::shared_ptr<int> sp = make_shared<int>(10);
// assert(sp.unique());//现在shared_ptr 是指针的唯一持有者
std::shared_ptr<int> sp2(p2);//第二个shared_ptr ,拷贝构造函数
// std::shared_ptr<int> sp2(p1);//第二个shared_ptr ,拷贝构造函数
// std::shared_ptr<int> sp2(sp.get());
std::shared_ptr<int> sp3(sp2);
//两个shared_ptr 相等,指向同一个对象,且引用计数为2
std::cout << sp.use_count() << std::endl;
std::cout << sp2.use_count() << std::endl;
std::cout << sp.unique() << std::e
C++智能指针测试
最新推荐文章于 2024-05-30 09:57:41 发布