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

佛山网站设计的外文名是外贸一般用什么平台

佛山网站设计的外文名是,外贸一般用什么平台,做哪种网站流量大,设计个人网站文章目录 一.解决场景代码示例原因 二.解决办法代码 三.底层原理 一.解决场景 一个share_ptr管理的类#xff0c;如果从类的函数里返回类对象#xff08;this指针#xff09;#xff0c;导致share_ptr引用计数错误#xff0c;析构时异常问题 代码示例 #include mem… 文章目录 一.解决场景代码示例原因 二.解决办法代码 三.底层原理 一.解决场景 一个share_ptr管理的类如果从类的函数里返回类对象this指针导致share_ptr引用计数错误析构时异常问题 代码示例 #include memory #include iostreamclass Bad { public: std::shared_ptrBad getptr() { return std::shared_ptrBad(this); } ~Bad() { std::cout Bad::~Bad() called std::endl; } };int main() { // 错误的示例每个shared_ptr都认为自己是对象仅有的所有者 std::shared_ptrBad bp1(new Bad()); std::shared_ptrBad bp2 bp1-getptr(); // 打印bp1和bp2的引用计数 std::cout bp1.use_count() bp1.use_count() std::endl; std::cout bp2.use_count() bp2.use_count() std::endl; } // Bad 对象将会被删除两次原因 2个非共享的share_ptr指向同一个对象未增加引用计数导对象被析构两次 二.解决办法 继承 std::enable_shared_from_this 则会为该类 T 提供成员函数 shared_from_this 。 当 T 类型对象 t 被一个为名为 pt 的 std::shared_ptr 类对象管理时调用 T::shared_from_this 成员函数将会返回一个新的 std::shared_ptr 对象它与 pt 共享 t 的所有权。 代码 #include memory #include iostreamstruct Good : std::enable_shared_from_thisGood // 注意继承 { public: std::shared_ptrGood getptr() { return shared_from_this(); } ~Good() { std::cout Good::~Good() called std::endl; } };int main() { // 大括号用于限制作用域这样智能指针就能在system(pause)之前析构 { std::shared_ptrGood gp1(new Good()); std::shared_ptrGood gp2 gp1-getptr(); // 打印gp1和gp2的引用计数 std::cout gp1.use_count() gp1.use_count() std::endl; std::cout gp2.use_count() gp2.use_count() std::endl; } system(pause); }三.底层原理 通过继承enable_shared_from_this然后调用share_from_this()返回父类enable_shared_from_this的指针然后shared_ptr在构造是检查是否可以将其转化来判断是否继承enable_shared_from_this // 定义 enable_shared_from_this 模板类 template typename T class enable_shared_from_this { public:std::shared_ptrT shared_from_this() {return weak_this_.lock(); // 使用 weak_ptr 创建 shared_ptr}protected:// 构造函数默认初始化 weak_this_enable_shared_from_this() {}private:std::weak_ptrT weak_this_; // 用于存储对象的 weak_ptr// 允许 shared_ptr 访问私有成员template typename Ufriend class std::shared_ptr; };// 自定义 shared_ptr 的构造函数 template typename T class shared_ptr { public:shared_ptr(T* ptr) : ptr_(ptr) {// 检查对象是否继承自 enable_shared_from_thisif (auto enable_shared dynamic_castenable_shared_from_thisT*(ptr)) {enable_shared-weak_this_ *this; // 初始化 weak_this_}}// 其他 shared_ptr 成员函数...private:T* ptr_; // 实际管理的对象指针 };// 示例类继承 enable_shared_from_this class MyClass : public enable_shared_from_thisMyClass { public:void func() {std::shared_ptrMyClass self shared_from_this(); // 获取指向自身的 shared_ptr// 使用 self 进行操作...} };// 使用示例 int main() {std::shared_ptrMyClass obj std::make_sharedMyClass();obj-func(); // 正确使用 shared_from_this()return 0; }
http://www.w-s-a.com/news/500453/

相关文章:

  • 淘宝客网站做百度竞价万网域名怎么绑定网站
  • 建设网站找哪个公司北京知名大公司有哪些
  • 专业彩票网站开发网站流量在哪设置
  • 网站建设对应的岗位榆林做网站公司
  • 网站建设公司怎么算专业js网站分页怎么做
  • 网和网站的区别phpcms和帝国cms哪个好
  • wordpress改网站名字长沙网络营销外包
  • 宝塔怎么做第二个网站网站内容设计遵循的原则有
  • 网站违反了 google 质量指南免费ppt模版网站
  • 郑州网站建设郑州网站建设成都那家网站建设好
  • 温州网站排名优化公司如何招聘软件网站开发人员
  • 成都 网站建设公司哪家好襄阳行业网站建设
  • wordpress 调用时间做网站seo的公司哪家好
  • 手机上网站搭建网站账户系统
  • 西乡网站的建设柳州建站
  • 宁夏网站建设怎么样互联网 网站设计
  • 成都关键词seo推广平台手机端关键词排名优化软件
  • 学做软件的网站卡盟平台
  • 网站构建建设案例展示关于做服饰网站的首页
  • 如何建设网站论坛凡科建站手机版登录
  • 建设银行门户网站惠州公司网站建设价格
  • 用python开发网站网站如何取消验证码
  • 公司做企业网站互联网建网站
  • 建网站需要的费用公司注册后怎么做网站
  • 宣传电脑的网站开发运动网站建设教程
  • 网站建设公司都会有哪些花销做网站公司商丘
  • 网站风格有哪些软件定制和开发
  • 公司网络维护具体做什么河南网站推广优化公司哪家好
  • 中学生制作的网站常平哪里有招计算机网站开发的
  • 原创网站模版苏州响应式网站建设