我需要一个实现共享数据语义的类,并且std::shared_ptr可能是一个不错的起点。我认为此类的典型实现可以使用私有(private)shared_ptr共享数据,然后至少实现copy构造函数和operator=

就像是:

class SharedDataClass {

public:
  SharedDataClass(const SharedDataClass& other)
  {
    data_ = other.data_;
  };

  SharedDataClass& operator=(const SharedDataClass& other)
  {
    data_ = other.data_;
    return *this;
  }

private:
  std::shared_ptr<DataType> data_;
};

我想问一下是否有人对上述实现提出批评。是否还有其他成员/运营商应该实现一致性?

最佳答案

在这种情况下,无需实现复制构造函数或赋值运算符。让编译器为您定义简单的默认值,shared_ptr将完成您期望的工作。

09-06 03:37