学习笔记之智能指针简单理解

来源:互联网 发布:网络维修基础知识 编辑:程序博客网 时间:2024/06/05 17:58

智能指针  shared prt

存在一个智能指针类,这个指针类中有一个指针指向所要指向的变量,还有一个该变量的引用次数(就是有多少个指针指向该变量)每被赋值一次,该变量的引用就多一次,当要释放的时候,会先检查该变量的引用次数如果该变量的引用次数是0才会释放内存否则的话只是将要释放的指针置空。

智能指针解决的问题是悬挂指针(野指针)

设计思想是 将基本类型的指针封装为类对象指针(可以是模版类)并在析构函数里进行删除指针指向内存。

 

智能指针是一个类的对象,当一个类对象的生存周期过期时,会自动进行析构和销毁申请的内存空间。

 

STL一共给我们提供了四种智能指针:auto_ptr、unique_ptr、shared_ptr和weak_ptr(

 

避免将非堆变量用智能指针进行指向。因为会释放栈内存导致错误。

 

Shared_ptr指针的引用计数是通过一个类对象完成的

还可以通过堆内存实现引用。。比如malloc一个空间专门存放引用数量或者可以用静态类

 

Class shared_ptr_count

{

   Int * p;

   Int use;

}

 

Class  shared_ptr 

{

 

      Shared_ptr_count * p;

 

}


0 0
原创粉丝点击