std::make_unique和 std::make_shared区别
生活随笔
收集整理的這篇文章主要介紹了
std::make_unique和 std::make_shared区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
區別1:分配除的指針,前者是不能賦值,只能move,后者可以賦值
區別2:前者使用智能指針數組,后者不行(因為后者分配出來的指針具有單一性)
#include
#include
class A
{
public:
A() {
std::cout << “A” << std::endl;
}
};
int main()
{
//std::unique_ptr<char[]>ptr = std::make_unique<char[]>(std::move(100));
//等價寫法
//std::unique_ptr<A[]>ptr1(new A[10],std::default_delete<A[]>());
//std::unique_ptr<A[]>ptr1(new A[10]);(權威規定的默認std::default_delete刪除器 )
//可能是為了單一性
//std::shared_ptrptr = std::make_shared(100);
//注意智能指針數組,一定要釋放函數
//使用智能數組時,一定要添加接口
//不寫的,直接程序崩潰
//std::shared_ptr<A[]>ptr(new A[10]);
}
總結
以上是生活随笔為你收集整理的std::make_unique和 std::make_shared区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows10 64位 安装 Pos
- 下一篇: windows下配置caffe-matl