智能指针

#include <bits/stdc++.h>
using namespace std;
//智能指针 
int main(){
    //unique_ptr,保证同一时间内只有一个智能指针可以指向该对象
    unique_ptr<string> p3(new string("auto"));
    unique_ptr<string> p4;
//    p4 = p3; 不允许,会产生相应的报错 
    unique_ptr<string> pu1(new string ("hello world"));
    unique_ptr<string> pu2;
//    pu2 = pu1;会产生报错,因为留下了悬挂的unique_ptr(pu1)
    unique_ptr<string> pu3;
    pu3 = unique_ptr<string> (new string ("You"));
// =号的左侧是个临时变量,让权给pu3后,便被自动销毁,编译器允许这样赋值

    unique_ptr<string> t1,t2;
    t1 = unique_ptr<string> (new string ("You"));
    t2 = move(t1);//借助move函数实现安全赋值 
    cout<<*t2<<endl;
    return 0; 
} 

 

posted @ 2021-07-16 21:37  zmachine  阅读(43)  评论(0编辑  收藏  举报