当前位置:首页>正文

如何理解智能指针 C 几种智能指针之间的比较

2023-06-16 02:51:44 互联网 未知

如何理解智能指针

智能指针auto_ptr的话,实现内容很简单,也就不到100行代码。实际上的作用就是对程序员申请的内存进行自动释放。原理就是利用了类的析构函数的原理,类变量在生命周期结束的时候,会自动调用析构函数,执行析构函数的中的内容,auto_ptr实际上就是一个模板类,针对通过auto_ptr构造的对象,在析构函数中自动释放申请的内存。用法可以在百度百科中查到。一般用new的地方,都可以使用智能指针。不过智能指针也有缺陷,控制权的转移需要把握好,否则也会存在问题。

C 几种智能指针之间的比较

auto_ptr、unique_ptr、shared_ptr、weak_ptr。其中auto_ptr在C 98标准引入,后三种在C 11标准中加入。而auto_ptr已经被C 11所摒弃,建议使用后三种智能指针,这4种智能指针使用模板(template)实现。