小编dbl*_*esk的帖子

简单的包装类与智能指针

出于教育目的,我今天早些时候实现了一个包装类,定义如下(这取自一本书):

#ifndef WRAPPER_H
#define WRAPPER_H

template<class T>
class Wrapper
{
public:
  Wrapper()
  { dataPtr = 0; }

  Wrapper(const T& inner)
  {
    dataPtr = inner.clone();
  }

  Wrapper(const Wrapper<T> &original)
  {
    if (original.dataPtr != 0)
      dataPtr = original.dataPtr->clone();
    else
      dataPtr = 0;
  }

  Wrapper &operator =(const Wrapper<T> &original)
  {
    if (this != &original)
    {
        if (dataPtr != 0)
          delete dataPtr;

        dataPtr = (original.dataPtr !=0) ? original.dataPtr->clone() : 0;
    }
    return *this;
  }

  ~Wrapper()
  {
    if (dataPtr != 0)
      delete dataPtr;
  }

  T …
Run Code Online (Sandbox Code Playgroud)

c++ wrapper shared-ptr

2
推荐指数
1
解决办法
669
查看次数

标签 统计

c++ ×1

shared-ptr ×1

wrapper ×1