QPointer 到底是什么?能否简单地说一下.

li569685235 2014-07-05 09:07:36
看了一些QPointer的文章,总是感觉有点看不懂,谁能简单地说一下它是什么?
...全文
95 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
li569685235 2014-07-05
  • 打赏
  • 举报
回复
喔,这么回事!还是用一个简单例子比较实在.
小K小Q 2014-07-05
  • 打赏
  • 举报
回复
QPointer是一个指针封装类,其作用类似于智能指针,但是它最大的特点应该是在指针的控制上,它希望一个Qt的指针(当然是从QObject派生的)可以同时被多个类拥有,这在 界面编程中当然是很常见的事情了,但是当这个指针被删除时,我们不希望再找到那两个界面类然后通知它们,相反我们希望这两个界面类可以直接判断QPointer中的isNull方法 很自然的知道原始指针已经不存在了 试验代码: #include <QApplication> #include <QPushButton> #include <QPointer> int main(int argc, char *argv[]) { QApplication app(argc, argv); QPushButton* pButton = new QPushButton("wgs"); QPointer<QPushButton> button = pButton; delete pButton; if (!button.isNull()) { button->setText("www"); } return app.exec(); } QPointer 简单地讲,我们通常删掉一个对像时,要把这个对象置为空,否则为野指针。用了QPointer它将自己置为空。

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧