C++11智能指针shared_ptr的理解与使用示例

对“智能指针”理解:
所谓“智能指针”,并不是强调“智能”,其实质是帮助C++农民工 T_T 更好、更方便、更安全地管理动态内存,防止内存泄漏问题的出现。智能指针的工作原理就是将代码中申请的动态内存交给智能指针对象进行管理,智能指针对象在其生命周期结束(析构)时,将自己管理的动态内存释放掉,而不需要我们在代码中显式调用delete来释放内存。这样就达到了防止内存泄漏的目的,这就是所谓的“智能”。

来看代码

#include <iostream>
#include <memory>
#include <string>
using namespace std;

class MyClass1
{
public:
	MyClass1();
	~MyClass1();
    void test(string temp);
private:

};

MyClass1::MyClass1()
{
    cout << "MyClass1 construct" << endl;
}

MyClass1::~MyClass1()
{
    cout << "MyClass1 distruct" << endl;
}
void MyClass1::test(string temp)
{
    cout << temp << endl;
}

int main()
{
    shared_ptr<MyClass1> s1(new MyClass1);

    s1.get()->test("class 1 test");

    getchar();
}

运行代码
由控制台输出可以看到,在getchar()按下回车后return,意味着智能指针对象s1的生命周期已结束,MyClass1的析构函数被执行了。

https://blog.csdn.net/wwplh5520370/article/details/121120299?spm=1001.2014.3001.5502

posted @ 2022-08-07 11:39  萧海~  阅读(71)  评论(0编辑  收藏  举报