Qt中的智能指针
发布日期:2021-07-01 04:26:09
浏览次数:2
分类:技术文章
本文共 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月30日 18时35分41秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Ajax中的XMLHttpRequest对象详解
2019-05-02
GDB命令大全
2019-05-02
IT行业培训必读:优秀程序员的十个习惯
2019-05-02
实例属性和类属性
2019-05-02
StringIO和BytesIO
2019-05-02
财务分析与决策:同型分析
2019-05-02
今日整理PDF电子书资料
2019-05-02
【语言-c#】C# 超级整数计算
2019-05-02
【软件-Doxgen】工具:程序代码生成xml文档(doxgen)
2019-05-02
【框架-MFC】CMFCMenuBar 菜单按钮的图标添加
2019-05-02
【语言-c#】C# 注释详细介绍说明
2019-05-02
MySQL 内存模型
2019-05-02
express 解析post方式下的json参数
2019-05-02
node.js 实现一个简单的登录拦截器
2019-05-02
c++抽象类、纯虚函数以及巧用纯虚析构函数实现接口类【转】
2019-05-02
Caffe 安装错误记录及解决办法【转】
2019-05-02