【发布时间】:2010-04-12 20:39:25
【问题描述】:
我熟悉 Qt 使用 D 指针管理数据的方式。如何在我的代码中执行此操作?
我试过这个方法:
1) 将所有数据移动到一个结构中 2) 在结构中添加一个 QAtomicInt 3) 实现一个 = 运算符并更改我的构造函数/解构函数以检查引用计数。
问题是,当我做对象的浅拷贝时,我收到一个关于 QObject 声明 = 为私有的错误。那我该怎么做呢?
这是我的复制运算符的示例:
HttpRequest & HttpRequest::operator=(const HttpRequest &other)
{
other.d->ref.ref();
if (!d->ref.deref())
delete d;
d = other.d;
return *this;
}
我是不是走错了路?
【问题讨论】:
-
确切的错误是什么?