Qt中的智能指针
发布日期:2021-07-01 04:26:09
浏览次数:3
分类:技术文章
本文共 1152 字,大约阅读时间需要 3 分钟。
文章目录
1 Qt中的智能指针
1.1 QPointer
QPointer:
- 当其指向的对象被销毁时,它会被自动置空。
- 析构时不会自动销毁所指向的对象。
注意:
QPointer要求所指向的对象必须继承于QObject,底层实现是维护了一个哈希表,具体的细节暂时不进行深入研究。QPointer对象可以和NULL进行直接比较,是因为实现了类型转换函数,如下:operator T * () const。1.2 QSharedPointer
QSharedPointer:
- 引用计数型智能指针。
- 可以被自由的拷贝和赋值。
- 当引用计数为0时才删除指向的对象。
编程实验:Qt中的智能指针
#include#include #include class Test : public QObject{ QString m_name;public: Test(const char* name) { qDebug() << "Hello, " << name << "."; m_name = name; } void print() { qDebug() << "I'm " << m_name << "."; } ~Test() { qDebug() << "Goodbye, " << m_name << "."; }};int main(){ QPointer pt(new Test("D.T.Software")); QPointer pt1(pt); QPointer pt2(pt); pt->print(); pt1->print(); pt2->print(); delete pt; qDebug() << "pt = " << pt; qDebug() << "pt1 = " << pt1; qDebug() << "pt2 = " << pt2; qDebug() << endl; QSharedPointer spt(new Test("Delphi Tang")); QSharedPointer spt1(spt); QSharedPointer spt2(spt); spt->print(); spt1->print(); spt2->print(); return 0;}
1.3 Qt中的其它智能指针
参考资料:
转载地址:https://muzimin.blog.csdn.net/article/details/105042269 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
很好
[***.229.124.182]2024年04月15日 17时55分33秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
第08章 输入和输出
2019-05-02
QT中文乱码的解
2019-05-02
网上Qt多线程同步的一种普遍误识
2019-05-02
libcurl smtp发送邮件附件大小限制问题
2019-05-02
Qt中用QuaZip来压缩和解压缩文件
2019-05-02
第13章 Windows内存体系结构
2019-05-02
windows 和 linux 下c/c++内存分布(整理)
2019-05-02
Qt解析XML文件(QDomDocument)
2019-05-02
Qt图形视图框架
2019-05-02
Qt5中表格处理大数据量
2019-05-02
LeakCanary源码分析
2019-05-02
单例模式(Singleton)
2019-05-02
android Handler解析
2019-05-02
debian 有用的源
2019-05-02
Linux 安装 .NET Core 1.0 SDK
2019-05-02
我对卓越团队的理解
2019-05-02
linux epoll简介
2019-05-02
python装饰器学习总结
2019-05-02
我在Facebook学到的10个经验
2019-05-02
c语言知识点补遗
2019-05-02