C++智能指针unique_ptr使用示例

时间:2021-01-03 19:44:18

unique_ptr独享一个内存,没有拷贝构造函数,也不能直接赋值,示例如下:

#include <stdarg.h>
#include <stdio.h>
#include <iostream>
#include <vector>
#include <string.h>
#include <algorithm>
#include <stdlib.h>
#include<memory>
#include <string.h>

using namespace std;

int main()
{
unique_ptr<int> p1(new int(5));

//unique_ptr<int> p2 = p1; //错误,不允许直接赋值
//unique_ptr<int> p3(p1); //错误,不允许拷贝构造

unique_ptr<int> p4;

/* 把p1的使用权交给p4 */
p4.reset(p1.release());

/* 将p4的使用权交给p5 */
unique_ptr<int> p5(p4.release());

//cout << *p4 << endl;//执行这条语句,程序会崩溃的

cout << *p5 << endl;


system("PAUSE");

return 0;
}