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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)