智能指针
- 在C++中,动态内存的管理是通过一对运算符来完成的: new,在动态内存中为对象分配空间并返回一个指向该对象的指针,我们可以选择对对象进行初始化;delete,接受一个动态对象的指针,销毁该对象,并释放与之关联的内存。
- shared_ptr类
shared_ptr允许多个指针指向同一个对象;
- make_shared函数
最安全的分配和使用动态内存的方法是调用一个名为make_shared的标准库函数。此函数在动态内存中分配一个对象并初始化它,返回指向此对象的shared_ptr,make_shared也定义在头文件memory中。
shared_ptr p1 = make_shared(); auto p2 = make_shared(); - 定位new:
int p = new int; //如果分配失败,new 抛出std::bad_alloc 定义在头文件new中
int p = new (nothrow) int; //如果分配失败,new 返回一个空指针 定义在头文件new中