smart_ptr.hpp

来自「电力故障信息采集,主要是针对南自的保护装置,这个程序用在Linux操作系统下」· HPP 代码 · 共 50 行

HPP
50
字号
#ifndef SMART_PTR_HPP#define SMART_PTR_HPPtemplate<class T>class CountedPtr{  private:    //members    T* ptr;    long* count;    //member funcfions    void dispose()    {      if(--*count==0)      {        delete ptr;        delete count;      }    }  public:    explicit CountedPtr(T* p=0):ptr(p),count(new long(1)){};    CountedPtr(const CountedPtr<T>& p) throw():ptr(p.ptr),count(p.count)    {      ++*count;    }    ~CountedPtr()throw()    {      dispose();    }    CountedPtr<T>& operator=(const CountedPtr<T>& p) throw()    {      if(this!=&p)      {        dispose();        ptr=p.ptr;        count=p.count;        ++*count;      }      return *this;    }    T& operator*() const throw()    {      return *ptr;    }    T* operator->() const throw()    {      return ptr;    }};#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?