auto_ptr是如何实现智能指针

auto_ptr是如何实现智能指针,主要思想在于将指针包装后存放在栈上,这样就能自动清除工作,这是内存栈的特点。

哪auto_ptr是如何实现呢?

1.定义一个模板类auto_ptr,? 具体定义请转到这篇:auto_ptr智能指针头文件

2.这样atuo_ptr就是一个类型,

当p对象离开作用域后将自动调用p对象的析构函数。

可以看到析构函数内调用了delete,这样就自动完内存的释放。

具体auto_ptr智能指针实现图示:

auto_ptr智能指针实现原理

3.auto_ptr内实现操作符重载* 、->,这样在写代码时看起来就跟一般指针一样。

以上就是auto_ptr实现智能指针的方法,auto_ptr其时就是一个类类型,只是它可以将指针再包装一次。

如要了解auto_ptr智能指针运用,转到这篇:auto_ptr智能指针使用与局限性