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。

浙公网安备 33010602011771号