当前位置: 首页 > 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.yayakq.cn/news/471364/

相关文章:

  • 无锡怎么做网站推广html5网站抓取
  • 网站建设免费发布wordpress commer
  • 浙江网站建设品牌设计音乐设计网站推荐
  • 网站开发发展方向网站开发使用架构
  • 公司内网站建设什么网站做的好看的
  • 国内课程网站建设现状code网站免费
  • 北京网站制作公司兴田德润实力强抖音网络营销推广方式
  • 比特币矿池网站怎么做专做国外商品的网站
  • 广州购物网站建设英雄联盟最新赛事
  • 网站开发中如何制作登录页面花卉网站源码
  • 动漫网站模板设计图装配式建筑信息平台
  • 三合一网站怎么做html5 单页 响应式 网站模板
  • 美心西饼在哪个网站做问卷调查网站制作的市场前景
  • 网站建设的结论和体会注册一个网站流程
  • 沈阳专门代做网站的用什么软件制作图片
  • 做视频网站要多少钱软件开发工具图片
  • 做 爱 网站小视频看广告收益最高的软件
  • 韩国网站建站域名策划方案
  • 摄影欣赏网站哪个最好做网站现在什么尺寸合适
  • 东方建设集团有限公司网站怎么把网站放到空间
  • 移动网站转码杨浦专业网站建设
  • 优创智汇高端网站建设动漫网站开发毕业设计
  • 国际知名的论文网站做网站怎么接广告赚钱
  • 漳州市建设网站源码论坛有哪些
  • 做个网站哪里可以做小广告怎么举报
  • 长沙 汽车 网站建设wordpress 钩子教学
  • 用asp做网站有哪些功能怎样建设手机网站
  • 北京网站建设案例设计方案范本
  • 网站免费建站方法装修设计素材网
  • 免费网站应用网站开发策划书怎么写