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

中小微企业查询网站常用于网站推广的营销手段是

中小微企业查询网站,常用于网站推广的营销手段是,网站建设的内容是什么,平面设计作品集模板问题描述: 例如: 有个类A和类B,A类包含B类型的shared_ptr成员,B类包含A类型的shared_ptr成员。然后主函数各自创建A类的对象和B类的对象都被shared_ptr管理(引用计数为1)。然后对象之间相互引用时&#x…

问题描述:

例如:

  • 有个类A和类B,A类包含B类型的shared_ptr成员,B类包含A类型的shared_ptr成员。
  • 然后主函数各自创建A类的对象和B类的对象都被shared_ptr管理(引用计数为1)。
  • 然后对象之间相互引用时(引用计数为2),当主函数结束时,对象出作用域销毁后引用计数减1,最后为1,相互引用的引用计数不会归0,导致析构函数不会释放资源,造成内存泄漏。
class B;
class A {
public:std::shared_ptr<B> bPtr;
};
class B {
public:std::shared_ptr<A> aPtr;
};int main() {auto a = std::make_shared<A>();auto b = std::make_shared<B>();a->bPtr = b;b->aPtr = a;// 此时 a 和 b 的引用计数都至少为 1(来自自身的 shared_ptr 管理以及对方的引用),即使超出作用域,引用计数也不会归 0,内存无法释放return 0;
}

解决办法:

在相互引用时,使用weak_ptr就可以解决了,因为weak_ptr不会增加引用计数,只起到观察者的作用。

class B;
class A {
public:std::weak_ptr<B> bPtr; // 改为 weak_ptr
};
class B {
public:std::weak_ptr<A> aPtr; // 改为 weak_ptr
};int main() {auto a = std::make_shared<A>();auto b = std::make_shared<B>();a->bPtr = b;b->aPtr = a;// 当超出作用域时,a 和 b 的引用计数(主要来自 make_shared 创建时的计数)会正常减少,因为 weak_ptr 不增加计数,对象可以正确释放return 0;
}

ps:后续也会出一个share_ptr和weak_ptr底层的原理,帮助大家更深的理解智能指针。

具体应用:

那么循环引用在现实开发场景有什么应用呢,这里举一个游戏的例子帮助大家理解。

比如你有个角色类和装备类,当两个类对象相互引用时,表示角色装备该武器,武器的持有者是该角色,当你没有解决循环引用问题时,就会造成:角色死亡时,武器资源没有释放;武器的持有者已死亡还被持有,不符合游戏规则且内存泄漏。

class Equipment;
class Character {
public:std::string name;std::weak_ptr<Equipment> equippedWeapon;Character(const std::string& n) : name(n) {}
};class Equipment {
public:std::string type;std::weak_ptr<Character> owner;Equipment(const std::string& t) : type(t) {}
};int main() {auto warrior = std::make_shared<Character>("勇士");auto sword = std::make_shared<Equipment>("剑");warrior->equippedWeapon = sword;sword->owner = warrior;return 0;
}

http://www.hkea.cn/news/166773/

相关文章:

  • 接网站开发做多少钱建一个外贸独立站大约多少钱
  • wordpress表单录入seo报告
  • python做网站显示表格星巴克seo网络推广
  • 一个com的网站多少钱管理微信软件
  • 蒙阴网站建设软文代写网
  • 用python做一旅游网站南昌seo计费管理
  • 湖北省建设厅win10优化软件哪个好
  • 湖南企业建站系统平台软文有哪些发布平台
  • 南通 网络 公司网站真正免费建站
  • 做图骂人的图片网站网络服务
  • wordpress主标题副标题seo基础
  • 淮安做网站优化百度竞价排名是什么方式
  • 食品公司网站源码谷歌网页
  • 做网站用哪种代码比较好推广seo发贴软件
  • 3d效果图软件宁波seo行者seo09
  • 美国做按摩广告的网站网站优化教程
  • wordpress云建站教程信息流广告公司一级代理
  • 我有一个域名怎么做网站百度一下下载
  • 郑州网站建设品牌好安装百度到桌面
  • 株洲做网站定制百度灰色词优化排名
  • 上海网页设计公司兴田德润电话排名优化外包公司
  • 做360网站优化快推广普通话宣传语手抄报
  • 动态网站开发语言有哪些大学生创新创业大赛
  • 关键词推广公司网站网络排名优化方法
  • 福州移动网站建设网络营销推广工具有哪些
  • win2008sr怎么用iis做网站国外网站加速
  • 合肥++网站建设磐石网站seo
  • 万网主机怎么上传网站如何在百度上投放广告
  • 做网站时如何给文字做超链接全球疫情最新数据消息
  • 四川省住建厅官方网站3分钟搞定网站seo优化外链建设