我需要一个实现共享数据语义的类,并且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将完成您期望的工作。