Я знаком с тем, как Qt использует D-указатели для управления данными. Как мне сделать это в моем коде?
Я попробовал этот метод:
1) переместить все данные в структуру
2) добавить QAtomicInt в структуру
3) реализовать оператор = и изменить мой конструктор / деконструктор на проверку количества ссылок.
Проблема в том, что когда я делаю поверхностную копию объекта, я получаю ошибку о том, что QObject объявляет = private. Как же мне это сделать?
Вот пример моего оператора копирования:
HttpRequest & HttpRequest::operator=(const HttpRequest &other)
{
other.d->ref.ref();
if (!d->ref.deref())
delete d;
d = other.d;
return *this;
}
Я поступаю неправильно?