Мне нужен класс, который реализует общую семантику данных, и, вероятно, std::shared_ptr
- это хорошее место для начала. Я думаю, что типичная реализация такого класса может использовать частный shared_ptr
для общих данных, а затем реализовать как минимум конструктор копирования и operator=
.Общий класс данных с использованием std :: shared_ptr
Что-то вроде:
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_;
};
Я хотел бы спросить, если кто-то имеет некоторую критику, чтобы предложить на вышеуказанной реализации. Есть ли какой-либо другой член/оператор, который должен быть реализован для обеспечения согласованности?
'= default;' кажется достаточно – Jarod42
'std :: shared_ptr data' заботится обо всем этом для вас. –
И есть также конструктор/назначение перемещения. – Jarod42