Qt智能指针用户指南帮助文章

作者:招生办 发布时间:2019-05-10 18:31 点击数:80次
本文介绍如何使用智能指针。Qt帮助指南文章。Qt讨论了各种类型的智能指针,更常见的是QPointer,QSharedDataPointer,QSharedPointer,QWeakPointer,QScopedPointer和Qt版本。执行以下操作:
QPointer(4。
0)废除。您可以用QWeakPointer替换它。它对线程不安全。
QSharedDataPointer(4。
0) - 不依赖于线程安全保护,提供数据写入和浅拷贝(在数据中提供)到指针数据到数据()。
(注意:它是线程安全的,提供数据保护线程安全与QsharedData一起完成)。
QSharedPointer(4。
5) - 用于引用计数的灵活指针可以是共享资源,它是一个安全线程。
QWeakPointer(4。
5) - 共享资源的弱资源引用计数类型是线程安全的。
QScopedPointer(4。
6) - 线程安全指针,不灵活的资源专门实现非引用计数。
strongpointer:放弃所有权,而生成的资源的所有权则不是。
weakpointer:它旨在让外部世界放弃所有权并释放其资源,以及资源所有权之间。
与STD和QSharedPointer类似的功能:auto_ptr,最大的区别是属性auto_ptr无法传输。
实际上,它没有指定尚未复制的scoped_ptr!
以下示例代码使用QSharedPointer,QWeakPointer和QScopedPointer。
intmain(intargc,char * ARGV[]){QCoreApplicationa(ARGC,ARGV)。// rawpointerQString * P = newQString(HI); // Implementsnon-reference countsstrongpointerQScopedPointerQStringpScopedPointer(newQString(scope))。// Builderror,canNOTbesharedandreference-count // QScopedPointerQStringpScopedPointerpScopedPointer2 = pScopedPointer。// Implementsreference-countingstrongsharingofpointersQSharedPointerQStringpSmart(newQString(smart)); QSharedPointerQStringpSmart2; pSmart2 = QSharedPointerQString(newQString(newSString(SMART2))。QSharedPointerQStringpSharedPoninter; // canbesharedsafelyandreference-countpSharedPoninter = pSmart; qDebug()*(psmart。
data()); qDebug()*(pSmart2)。
data()); qDebug()*(pSharedPoninter。
data(); QTimer * Timer = newQTimer(); QWeakPointer QTimerp WeakPointer = Timer。// Weakpointer的资源可以从outoutworlddeletetimer中删除;(如果是pWeakPointer。
isNull()){qDebug()}}containsQObjecthasbeendeleted
摘要:Qt指南帮助文章内容,演示文稿。如果有帮助,谢谢你的智能指针!
站:[编辑]Qt在线函数指针详细使用键盘焦点应用OpenCVQt类型学习QT单元和基础QT操作程序接收线程QT通信线程描述QT数据库[包括编辑器Qt程序李成的电话:(010)68476606]
喜欢0