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)
还没有任何评论哟~
