QPointer很大程度上避免了野指针(使用if语句判断即可,类似于dynamic_cast),而且使用非常方便 good

时间:2022-10-21 14:13:35

QPointer

如何翻译呢?我不太清楚,保留英文吧。

  • The QPointer class is a template class that provides guarded pointers   to QObjects.

  • 使用:一个guarded指针,QPointer<T> ,行为和常规的指针 T * 类似

  • 特点:当其指向的对象(T必须是QObject及其派生类)被销毁时,它会被自动置NULL.
    • 注意:它本身析构时不会自动销毁所guarded的对象
  • 用途:当你需要保存其他人所拥有的QObject对象的指针时,这点非常有用

一个例子

     QPointer<QLabel> label = new QLabel;
label->setText("&Status:");
...
if (label)
label->show();

如果在...部分你将该对象delete掉了,label会自动置NULL,而不会是一个悬挂(dangling)的野指针。

QPointer 属于Qt Object模型的核心机制之一,请注意和其他智能指针的区别。

http://blog.csdn.net/wsh6759/article/details/7432200

QPointer很大程度上避免了野指针(使用if语句判断即可,类似于dynamic_cast),而且使用非常方便 good的更多相关文章

  1. python模块之HTMLParser&lpar;原理很大程度上就是对类构造的熟练运用&rpar;

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python模块之HTMLParser(原理很大程度上就是对类构造的熟练运用) import HTMLPar ...

  2. tensorflow 单机多GPU训练时间比单卡更慢&sol;没有很大时间上提升

    使用tensorflow model库里的cifar10 多gpu训练时,最后测试发现时间并没有减少,反而更慢 参考以下两个链接 https://github.com/keras-team/keras ...

  3. C&plus;&plus;内存泄露之野指针

    写出本文仅仅是处于备忘的目的. 最近为现在做的软件添加了一个内存回收机制(以前处于某种内存只申请不释放,这并不等于内存泄露,因为我们知道这些内存块在内存中的位置)-- 在某一块内存不使用的时候将其释放 ...

  4. OC中的野指针,空指针,nil,Nil,NULL,NSNULL小结

    周末与一个老朋友吃饭聊天,因为他正在培训班学习iOS开发,就随便聊了几句,发现自己OC基础上的欠缺和一些知识点的混淆.特此整理如下. 1.空指针 没有存储任何内存地址的指针就称为空指针(NULL指针) ...

  5. C&sol;C&plus;&plus; 中野指针产生的问题

    野指针产生的问题: 野指针的定义: > 野指针是指:指向一个已删除的对象或未申请访问受限内存区域的指针.与空指针不同,野指针无法通过简单地判断是否为NULL避免,而只能通过养成良好的编程习惯来尽 ...

  6. 【原创】大叔经验分享(2)为什么hive在大表上加条件后执行limit很慢

    问题重现 select id from big_table where name = 'sdlkfjalksdjfla' limit 100; 首先看执行计划: hive> explain se ...

  7. phpmyadmin-您可能正在上传很大的文件&comma;请参考文档来寻找解决方法

    phpmyadmin-您可能正在上传很大的文件,请参考文档来寻找解决方法   实这个很简单的只要更改php.ini里三个配置即可.(见下面加粗部分,改成你自己的需求即可) ; Maximum allo ...

  8. 0xC0000005&semi;Access Violation(栈区空间很宝贵&comma; linux上栈区空间默认为8M&comma;vc6下默认栈空间大小为1M)

    写C/C++程序最怕出现这样的提示了,还好是在调试环境下显示出来的,在非调试状态就直接崩溃退出. 从上述汇编代码发现在取内存地址 eax+38h 的值时出错, 那说明这个地址非法呗, 不能访问, 一般 ...

  9. 【已解决】phpMyAdmin中导入mysql数据库文件时出错:您可能正在上传很大的文件,请参考文档来寻找解决办法

    期间,用phpMyAdmin去导入90M左右的mysql数据库文件时出错: 您可能正在上传很大的文件,请参考文档来寻找解决方法. [解决过程] 1.很明显,是文件太大,无法导入.即上传文件大小有限制. ...

随机推荐

  1. JS巧计&lowbar;&lowbar;轮播

    横向轮播 function lxfScroll(main,titleli,alt,speed){ var lxfscroll = $(main); var ul = lxfscroll.find(&q ...

  2. 【IOS笔记】Gesture Recognizers

    Gesture Recognizers Gesture recognizers convert low-level event handling code into higher-level acti ...

  3. 非root模式下安装mysql

    1. 下载mysql.tar.gz wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.17.tar.gz 2. 下载cmake [ ...

  4. JSON的解析

    一:JSON字符串转换为JSON对象 JSON 最常见的用法之一,是从 web 服务器上读取 JSON 数据(作为文件或作为 HttpRequest),将 JSON 数据转换为 JavaScript ...

  5. C&num; 字符串知识整理

    新知识点,只是对于本人来说而已. 系统处理文本的方式 [新知识点].NET Framework .NET Framework的定义:其包含了一个公共语言运行时(Common Language Runt ...

  6. NHibernte教程&lpar;10&rpar;--关联查询

    本节内容 关联查询引入 一对多关联查询 1.原生SQL关联查询 2.HQL关联查询 3.Criteria API关联查询 结语 关联查询引入 在NHibernate中提供了三种查询方式给我们选择:NH ...

  7. OpenStack之Fuel架构及其工作原理

      一.Fuel架构 Fuel是一个开源的OpenStack部署和管理的工具,它允许用户通过Web UI进行OpenStack的部署和管理,并可以通过插件来扩展. Fuel的目标:加快和简化不同配置的 ...

  8. &lpar;FFT&rpar;A&plus;B Problem

    题目链接:https://cn.vjudge.net/contest/280041#problem/B 题目大意:给你n个数,然后让你找满足a[i] + a[j] = a[k] 的情况总数. 具体思路 ...

  9. Python-Flask实现电影系统管理后台

    代码地址如下:http://www.demodashi.com/demo/14850.html 项目描述 该项目实现电影系统的后台接口,包括用户,电影,场次,订单,评论,优惠券,推荐,收藏等多个模块, ...

  10. Vivado SPI Flash程序下载

    由于Vivado下载程序步骤和ISE有较大差异,特此写此文章,希望对大家有所帮助. 1,下载文件生成 在.bit文件生成后,在TCL中输入 write_cfgmem -format mcs -inte ...