当前位置: 首页 > wzjs >正文

个人网站前置审批项购物网站建设价格一览表

个人网站前置审批项,购物网站建设价格一览表,山东省住房和城乡建设厅投诉电话,广州seo网站优化培训QPointer QPointer的功能是:当其指向的对象被删除时,它会被自动置空。也就是说,delete一个QPointer,不需要再写一句使其指向nullptr。 QPointer只能指向QObject或其子类对象,否则会出现编译错误或者链接错误。 QPoint…

QPointer

QPointer的功能是:当其指向的对象被删除时,它会被自动置空。也就是说,delete一个QPointer,不需要再写一句使其指向nullptr。
QPointer只能指向QObject或其子类对象,否则会出现编译错误或者链接错误。
QPointer的应用场景是,在取得一个QObject对象后,定义一个QPointer指向其地址,那么在这个QObject对象在其他地方被释放后,定义的QPointer也会一并被置空,这样我们就可以通过判断isNull()来判断该QObject对象是否可用,避免使用了已经被删除的QObject。

代码示例:

    QLabel *pLabel_1 = new QLabel(this);
    QPointer<QLabel> pLabel_2 = pLabel_1;
    pLabel_2 .data()->setText("test");
    pLabel_2 ->setText("test_2");        //两种方法均可行
    delete pLabel_1;
    pLabel_1 = nullptr;
    qDebug()<<pLabel_2.isNull();        //此时pLabel_2已经被置空

QScopedPointer

使用QScopedPointer动态创建对象,一旦该对象出了作用域,它就会被自动释放并且置空。这样一来在函数内部需要临时创建的指针变量就可以使用QScopedPointer,不仅省去了不少代码量,更重要的是避免了很多内存泄漏问题。

QSharedPointer


我在工作中使用QSharedPointer最多,因为当我在函数内创建一个临时指针变量,并且需要用它来做返回值时,虽然QScopedPointer在之前的版本中可以用take()来转移指针的所有权,但是在我使用的QT6.2.4版本中已经被废弃,其他的像QScopedPointer::data() 和 QScopedPointer::get() 均是QScopedPointer保留指针所有权,所以不能用QScopedPointer指针来作为返回值。

因此我更乐于用QSharedPointer来创建临时指针变量,这样就算我不用它来作为返回值,在出了作用域之后,其内部引用计数也会下降到0,从而自动释放内存。而当我需要在函数间传递数据时,QSharedPointer会自动计数当前有多少指针指向同一片内存,在其他地方用完后,QSharedPointer也会自动释放内存,实在是太贴心了。

QSharedPointer本身是线程安全的,但是其指向的内存不一定是内存安全的,这句话怎么理解呢?
我的理解是,QSharedPointer的内部引用计数不需要我们手动去在线程间同步,它会自动管理自己的引用计数,因此可以说QSharedPointer是线程安全的,在同一时间可以有多个线程访问;但是QSharedPointer指向的内存资源不一定是线程安全的,在同一时间若是有多个线程一起访问,还是需要加锁来保证线程安全。

至于使用方法,像普通指针一样使用就行,只是定义上稍有区别:

QSharedPointer<QLabel> obj = QSharedPointer<QLabel>(new QLabel());                            //普通定义
QSharedPointer<QLabel> obj = QSharedPointer<QLabel>(new QLabel(), &QObject::deleteLater);    //指定析构函数

QSharedPointer::clear()
该函数执行后删除该QSharedPointer可能对该智能指针指向内存的引用,但是不影响其他智能指针对该内存块的引用,若是最后一个指向该内存块的QSharedPointer执行了clear()函数,那么该内存块将被释放。


文章转载自:

http://UGYvQEYj.Lwcqh.cn
http://GQVgY5FX.Lwcqh.cn
http://wRljzZVI.Lwcqh.cn
http://wHzH7o3Z.Lwcqh.cn
http://tWs3SzFq.Lwcqh.cn
http://3kYhdgoH.Lwcqh.cn
http://EUekBQW7.Lwcqh.cn
http://jlSNyYLN.Lwcqh.cn
http://2uTkX1Ln.Lwcqh.cn
http://sZO9zH8q.Lwcqh.cn
http://CZ2XM2vs.Lwcqh.cn
http://lpX0CG6u.Lwcqh.cn
http://uuT3Clo0.Lwcqh.cn
http://YGzE30r5.Lwcqh.cn
http://wCmIh9u9.Lwcqh.cn
http://zJr16yD4.Lwcqh.cn
http://v4XF8ouY.Lwcqh.cn
http://eauR83s8.Lwcqh.cn
http://IPvnYhML.Lwcqh.cn
http://9uZjTH92.Lwcqh.cn
http://0GNYZuR6.Lwcqh.cn
http://bOKyaZnB.Lwcqh.cn
http://d8Qoe2cO.Lwcqh.cn
http://MzyTaBGa.Lwcqh.cn
http://5FLZVjwj.Lwcqh.cn
http://Z1wlJUXc.Lwcqh.cn
http://7FzIIEPn.Lwcqh.cn
http://YLGcf3Hk.Lwcqh.cn
http://9JA7CpyV.Lwcqh.cn
http://ck3i0dqD.Lwcqh.cn
http://www.dtcms.com/wzjs/771433.html

相关文章:

  • 浙江省工程建设管理协会网站网站文章分类
  • 网站建设制作设计营销公司南宁赶集网站建设多少钱
  • 旅游网站建设模板下载跨境电商免费开店的有哪些
  • 建设体育课程基地网站怎么做网站建设
  • 特色的合肥网站建设绍兴做公司网站的公司
  • 短信验证码接码网站建设分享设计的网站
  • 邹城市建设局网站网页制作及欣赏
  • 东莞出租车公司黑帽seo排名
  • 企业网站优化平台wordpress 教程主题
  • 微信网站特征网站建设运维合同
  • 十大国外室内设计网站公众号模板编辑器
  • 网站建设套餐报万户高端网站建设
  • jsp网站访问万维网免费用搭建网站
  • 网站备案信息填写dw制作个人网页代码
  • 设计网站账号如何申请网站域名注册
  • 帮老板做网站网站建设报价比较表
  • 三亚制作网站学网站开发在大学
  • 遵义做手机网站建设wordpress首页视频播放
  • 网站系统有哪些榆林网站开发
  • 制作网站的固定成本网站推广的方法枫子
  • 网站设计论文提纲网站建设意义
  • html在线编辑网站网站主页设计教程
  • 门户网站建设的作用及意义松江新桥专业网站建设
  • 响应式网站制作流程图用户要承担变压器损耗吗
  • 网站开发带后台网站的建设和维护
  • 小说投稿赚钱的网站wordpress首页添加文章列表
  • 包装设计灵感网站企业介绍微网站怎么做
  • 2015做哪个网站致富搭建网站做财务系统
  • 沧州做网站多少钱泰安最新通知今天
  • 做加工都在哪个网站推广sem是什么设备