主页 | 所有的类 | 主要的类 | 注释的类 | 分组的类 | 函数 |
QPtrCollection类是绝大多数基于指针的Qt集合的基类。 详情请见……
#include <qptrcollection.h>
Inherited by QAsciiDict, QCache, QDict, QIntDict, QPtrList, QPtrDict and QPtrVector.
QPtrCollection类是Qt集合类QDict、QPtrList等等的基类。Qt也包括基于值的集合,比如QValueList、QMap等等。
QPtrCollection仅仅知道集合内对象的数量和删除策略(请参考setAutoDelete())。
集合的实现是使用Item(一般集合项)类型,它是一个void*。创建实际集合的模板类抛出Item为所需的类型。
这个类型是QPtrCollection中一般的“项”。
构造一个集合。构造函数是保护的,因为QPtrCollection是抽象类。
构造一个autoDelete()设置为假,source的一份复制。这个构造函数是保护的,因为QPtrCollection是抽象类。
注意如果source中autoDelete设置为打开的,复制它将会导致内存泄漏、读取被释放的内存或者两者都有的风险。
返回自动删除选项的设置。默认值为FALSE。
也可以参考setAutoDelete()。
也可以参考setAutoDelete()。
在QAsciiDict、QCache、QDict、QIntDict、QPtrList、QPtrDict和QPtrVector中被重新实现。
在QAsciiDict、QCache、QDict、QIntDict、QPtrList、QPtrDict和QPtrVector中被重新实现。
删除一个要从集合中移除的项。
这个函数不得不在集合模板类中重新实现,并且必须只能在自动删除生效的情况下删除d这一项。
警告:如果你重新实现这个函数,你也必须重新实现析构函数并且在你的析构函数中调用虚函数clear()。这是由于C++中虚函数和析构函数工作的方式:被继承类的虚函数不能被一个析构函数调用。如果你不这么做,当容器被破坏时,你的deleteItem()函数将不会被调用。
也可以参考newItem()和setAutoDelete()。
默认的实现是返回d指针,比如,没有复制被完成。
在几何模板类中这个函数极少被重新实现。对被插入的东西做复制不是共有的实践。
也可以参考deleteItem()。
如果enable为真,设置集合可以自动删除它的内容,并且如果enable为假,就永远不能删除它们。
如果自动删除被打开,当集合自己被删除时,集合中的所有项也都要被删除。如果集合有的仅仅是指向项的指针,这个很有用。
为了安全,默认设置是假。如果你把它打开,对于集合的复制你要注意些——你自己也许会发现两个集合删除同一个项。
注意在子类中自动删除设置也许会影响其它函数。例如,一个有remove()函数的子类将会从它的数据结构中移除这个项,并且如果自动删除生效,也将会删除这个项。
也可以参考autoDelete()。
实例:grapher/grapher.cpp、scribble/scribble.cpp和table/bigtable/main.cpp。
这个文件是Qt工具包一部分。 版权所有 © 1995-2002 Trolltech。保留所有权利。
Copyright © 2002 Trolltech | Trademarks | 译者:Cavendish | Qt 3.0.5版
|