一.为什么有智能指针?由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。可是程序员容易忘记 delete,最终导致没有 delete,程序异常。用智能指针便可以有效缓解这类问题。二.设计思想想法:如果ps指向的内存也被自动释放,那该有多好啊。(析构函数有这个功能。如果ps有一个析构函数
RAII(Resource Acquisition Is Initialization)资源分配即初始化,定义一个类来封装资源的分配和释放,在构造函数完成资源的分配和初始化,在析构函数完成资源的清理,可以保证资源的正确初始化和释放。------------------------------------------------------------------------------------
1智能指针智能指针主要是为了延迟创建对象,而不需要在构造函数中创建。1.1shared_from_this()c++11中的shared_from_this()来源于boost中的enable_shared_form_this类和shared_from_this()函数,功能为返回一个当前类的std::share_ptr,使用方法如下: #includeclass Test: public