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

网站内部链接优化方法个人网页免费域名注册入口

网站内部链接优化方法,个人网页免费域名注册入口,烟台 做网站,网站内容创造当使用std::shared_ptr时&#xff0c;循环引用可能会导致资源泄漏的问题。下面是一个简单的示例&#xff0c;展示了循环引用导致资源泄漏的情况&#xff1a; #include <iostream> #include <memory>class A; class B;class A { public:std::shared_ptr<B> b…

当使用std::shared_ptr时,循环引用可能会导致资源泄漏的问题。下面是一个简单的示例,展示了循环引用导致资源泄漏的情况:

#include <iostream>
#include <memory>class A;
class B;class A {
public:std::shared_ptr<B> b_ptr_;A() {std::cout << "A constructor" << std::endl;}~A() {std::cout << "A destructor" << std::endl;}
};class B {
public:std::shared_ptr<A> a_ptr_;B() {std::cout << "B constructor" << std::endl;}~B() {std::cout << "B destructor" << std::endl;}
};int main() {std::shared_ptr<A> a_ptr(new A());std::shared_ptr<B> b_ptr(new B());a_ptr->b_ptr_ = b_ptr;  // A持有B的shared_ptrb_ptr->a_ptr_ = a_ptr;  // B持有A的shared_ptrreturn 0;
}

在上述示例中,类A和类B相互持有对方的std::shared_ptr。这样就形成了循环引用,因为两个对象彼此引用对方的std::shared_ptr,导致引用计数永远不会变为0,资源无法正确释放。

main()函数结束时,a_ptrb_ptr超出了作用域,它们的析构函数被调用,但由于循环引用的存在,对象AB的析构函数不会被调用,资源无法被释放,从而导致资源泄漏。

为了避免循环引用导致的资源泄漏,可以使用std::weak_ptr来打破循环引用,如下所示:

#include <iostream>
#include <memory>class A;
class B;class A {
public:std::shared_ptr<B> b_ptr_;A() {std::cout << "A constructor" << std::endl;}~A() {std::cout << "A destructor" << std::endl;}
};class B {
public:std::weak_ptr<A> a_ptr_;B() {std::cout << "B constructor" << std::endl;}~B() {std::cout << "B destructor" << std::endl;}
};int main() {std::shared_ptr<A> a_ptr(new A());std::shared_ptr<B> b_ptr(new B());a_ptr->b_ptr_ = b_ptr;  // A持有B的shared_ptrb_ptr->a_ptr_ = a_ptr;  // B持有A的weak_ptrreturn 0;
}

在上述示例中,类B的成员变量a_ptr_使用std::weak_ptr来持有A的弱引用,这样不会增加A对象的引用计数。当A对象被释放时,std::weak_ptr会自动失效,不会影响资源的释放。这样就打破了循环引用,避免了资源泄漏的问题。

http://www.yayakq.cn/news/633595/

相关文章:

  • 福田专业网站建设公司wordpress禁用工具栏
  • 速成网站怎么做做网站有没有效果
  • 合肥做企业建网站那家好河北建设网网站
  • 网站建设是那个行业旅游公司网站制作
  • 武清做网站公司湖州城市投资建设集团网站
  • 网站参数错误怎么解决方法送网站建设管理信息内容审核制度
  • 小榄网站开发潍坊市网站建设设计
  • 织梦网站优化wordpress怎么给别人建站
  • 网站建设与维护中企业融资风险及其防范措施
  • 重庆公司网站怎样做 网站做seo
  • ps如何做网站首页短网址 wordpress
  • 烟台网站建设策划方案微信怎么做网页
  • 已备案网站域名wordpress 最简洁主题
  • 专门做期货的网站网页制作基础教程ps
  • 上海建设部网站wordpress 附件分离
  • 可以自己做网站的软件下载音乐网站开发文档
  • 小说主角重生之后做网站数据网站建设多少钱
  • 建设网站需要多少钱济南兴田德润o厉害吗郴州网站制作建设
  • 宁波专业做网站的公司有哪些网站建设地位
  • 唯品会 只做特卖的网站建设网站的主要流程有哪些内容
  • 网站开发文档步骤应该怎么写落地页模板
  • 广东知名网站建设仿阿里云网站
  • 青岛市网站建设公司做网站公司的收费多少
  • 怎样黑网站鹤壁seo推广
  • 如何设计微商城网站建设做网站的软件帝国
  • 网站改版后百度不收录网站开发如何报价单
  • 商洛城乡建设局网站北京海淀建设工程律师推荐
  • 连云港网站关键词优化服务做网站一共需要多少钱
  • 做网站送优化免费网站2022年能用的网址
  • 邳州微网站开发免费的行情网站app软件推荐