C++ shared_ptr

智能指针是行为类似于指针的类对象,可以将new获得(直接或者间接)的地址赋给这种对象。当智能指针过期时,其析构函数将使用delete来释放内存。因此,如果将new返回的地址赋给这些对象,将无需记住稍后释放这些内存:在智能指针过期时,这些内存将自动被释放。

  shared_ptr<double>pd;
  double *p_reg = new double;
  pd = p_reg; // not allowed (implicit conversion)
  pd = shared_ptr<double>(p_reg);  // allowed (implicit conversion) 
  shared_ptr<double>pshared = p_reg; // not allowed (implicit conversion)
  shared_ptr<double>pshared(p_reg);  // allowed (implicit conversion) 

由于智能指针模板类的定义方式,智能指针对象的很多方面都类似于常规指针。例如,如果ps是一个智能指针的对象,则可以对它执行解除引用操作(*ps)、用它来访问结构成员(ps->puffIndex)、将它赋给指向相同类型的常规指针。还可以将智能指针对象赋给另一个同类型的智能指针对象。
如果程序要使用多个指向同一个对象的指针,应选择share_ptr。

posted @   Happinesspill  阅读(26)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探
点击右上角即可分享
微信分享提示