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

长沙网站开发公wordpress无法跳转正确页面

长沙网站开发公,wordpress无法跳转正确页面,深圳html5网站建设,新闻软文怎么写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://www.dtcms.com/wzjs/556130.html

相关文章:

  • 教学网站模板下载wordpress 的导航插件
  • 柳州市建设投资开发公司网站商城网站项目策划书
  • 中企动力做的网站经常打不开网页设计ui设计培训
  • 如何做拍卖网站wordpress伪静态设置
  • 沙井网站建设公司东坑镇网站仿做
  • 凡科网站后台在哪里.网贷网站建设
  • 做网站南京进一步加强区门户网站建设管理办法
  • 厦门 微网站制作百度包年推广网站建设
  • 新公司做网站和域名网站云解析域名解析
  • 原创设计师品牌网站开了外网网站打不开
  • 网站建设毕业答辩ppt江苏电商网站开发
  • 建设小网站教程网站空间申请开通
  • 郑州网站建设十大公司国内做网站网站风险大吗
  • 怎么样注册自己的网站如何宣传商务网站
  • 网站建设推广选哪家博罗网站建设哪家好
  • 巢湖建设网站台州百度推广优化
  • 做旅游网站需要什么网站后台 添加用户
  • 有哪些网站可以做视频公司注册查询官网入口
  • flash网站源码免费下载百度官方认证
  • 用服务器做网站需要购买域名吗广告传媒公司名称
  • 新乡建设公司网站微信网页版网址
  • 网站服务器有问题怎么办啊网站开发需要什么软件
  • 网站开发国内外研究动态外贸关键词网站
  • 做兼职设计去哪个网站好代驾软件开发公司
  • 安平丝网网站建设网站开发实训指导书
  • 企业网站做凭安认证有用吗南通网站建设seo
  • 照片变年轻在线制作网站网站开发的现状及研究意义
  • 大学有吗网站建设网站建设丿金手指谷哥12
  • 新网站怎么让百度收录惠州响应式网站建设
  • 做公众号选择图片的网站网站开发图书管理系统