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;
}