Qt的相关Pointer(1)-----QPointer

QPointer是Qt提供的一种智能指针,用于监视QObject子类对象的生命周期。当所指对象被销毁时,QPointer会自动置为0,避免野指针问题。它可以进行常规的指针比较和解引用操作,但不支持算术运算。QPointer只能用于QObject的子类,否则会导致编译错误。在实际使用中,QPointer能帮助确保安全地操作和检查对象的存在性。
摘要由CSDN通过智能技术生成

QPointer

QPointer类是一个模版类,是为QObject提供的一种监视指针。指针声明:QPointer<T> p ,p的操作跟普通的C++指针相似,但与C++指针最大的不同就是,当它引用的对象被销毁时指针p会自动为0。而不是像C++指针会变成野指针。

当你需要一个指针p引用别的对象A,而这个对象A在别地方可能一不小心被销毁了,而p还在指向对象。这种情况下,QPointer类型的指针将变得很有用,你可以安全的检查指针是否有效。

QPointer <QLabel>  label = new QLabel;

label->setText("&Status:");

     ...dosomething….

if(label)

   label->show();

如果label被销毁, label会变为0,label->show();便不会被执行,不用担心label变为野指针而引发的程序崩溃.。

   QPointer类型的指针可以像普通的C++指针一样使用,普通的C++指针可以给QPointer指针赋值,比较 == 、!= 、解引用等操作,你也可以给参数为T * 的方法传QPointer<T>。

       QPointer<QLabel> label = new

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值