假设我有这个课程:
class Bear
{
public:
Bear ();
Bear (Bear &other);
// ... methods
private:
BearInfo* m_pInfo;
};
我可以按值Bear
存储对象吗?根据文档:QList<Bear>
在内部,
QList<T>
表示为指向类型项的指针数组T
。如果T
本身是指针类型或不大于指针的基本类型,或者如果T
是 Qt 的共享类之一,则将QList<T>
项目直接存储在指针数组中。
虽然我的类只包含一个指针,但它既不是指针类型也不是基本类型,所以在我看来,QList
将存储指针 ( Bear*
),这不是我想要的。而且由于BearInfo
结构必须是可变的,我不能Bear
从QSharedDataPointer
.
有什么建议可以让这个类按值存储在 Qt 集合中吗?