程序使用动态内存出于以下三种原因之一
1、程序不知道自己需要多少对象;
2、程序不知道所需对象的准确类型;
3、程序需要在多个对象间共享数据
shared_ptr的用法
可以指向特定类型的对象,用于自动释放所指的对象
eg: shared_ptr<CDlgPointCloud> PointCloudDlgPointer;//指向类型为CDlgPointCloud的对象PointCloudDlgPointer;
当然还有一个最安全的分配和使用动态内存的方法就是调用一个名为make_shared的标准库函数;
make_shared的用法
make_shared 在动态内存中分配一个对象并初始化它,返回指向此对象的shared_ptr,与智能指针一样,make_shared也定义在头文件memory中;
当要用make_shared时,必须指定想要创建的对象类型,定义方式与模板类相同,在函数名之后跟一个尖括号,在其中给出类型;
如make_shared<int> p3 = make_shared<int>(42);
一般采用auto定义一个对象来保存make_shared的结果,如auto p1 =make_shared<int>(42);
---------------------
原文:https://blog.youkuaiyun.com/u013360881/article/details/71798950