Advertisement

unique_ptr在内存管理中的应用

阅读量:

unique_ptr初始化方法

unique_ptr用于实现独占式所有权或严格所有权的概念,确保在任意时刻仅有一个智能指针能够指向特定对象。当unique_ptr被销毁时,其所管理的对象也将随之被销毁。由于unique_ptr不支持拷贝与赋值操作,因此在初始化过程中必须采用直接初始化的方式。C++14标准正式引入了make_unique函数,因此在实际使用中应优先选择make_unique进行初始化,而非直接使用new操作符,具体原因可参考这篇文章
此外,unique_ptr还具备更智能化的特性:当程序尝试将一个unique_ptr赋值给另一个时,若源unique_ptr为临时右值,编译器允许该操作;但若源unique_ptr将在后续继续使用,则编译器将禁止此类赋值行为,例如:

复制代码
    unique_ptr<string> pu1(new string ("hello world")); // 不推荐,推荐使用make_unique
    unique_ptr<string> pu1_1 = make_unique<string>("hello"); //推荐
    unique_ptr<string> pu2; 
    pu2 = pu1;                                      // #1 不允许

全部评论 (0)

还没有任何评论哟~