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

建设彩票开奖网站网站建设推广代理

建设彩票开奖网站,网站建设推广代理,网站ppt缩略图,网站后端开发流程系列文章目录 【C11】智能指针与动态内存 文章目录 系列文章目录简介一、头文件二、初始化1. make_shared2. 拷贝和赋值 三、实例 简介 shared_ptr 是一个类的模板#xff0c;它使用引用计数的方式来管理一个动态分配的内存资源。shared_ptr 需要一个动态分配的对象时#…系列文章目录 【C11】智能指针与动态内存 文章目录 系列文章目录简介一、头文件二、初始化1. make_shared2. 拷贝和赋值 三、实例 简介 shared_ptr 是一个类的模板它使用引用计数的方式来管理一个动态分配的内存资源。shared_ptr 需要一个动态分配的对象时会在堆上分配一块内存来存储该对象并维护一个引用计数。 shared_ptr允许多个shared_ptr指向同一个对象通过引用计数来跟踪有多少个shared_ptr指向同一个对象。每次创建一个新的shared_ptr指向同一个对象时引用计数增加1。当一个shared_ptr离开作用域或被重置时引用计数减少1。当引用计数变为0时shared_ptr会自动删除所指向的对象并释放内存。 一、头文件 本文出现的关于shared_ptr的方法都包含在此头文件中 #include memory二、初始化 1. make_shared 最安全方法是调用make_shared的标准库函数。同时引用计数从0到1。 // 指向一个值为默认值的int的shared_ptr0 std::shared_ptrint p1 make_sharedint(); // 指向一个值为4的int的shared_ptr std::shared_ptrint pt2 make_sharedint(4); // 指向一个值为555555的string的shared_ptr std::shared_ptrstd::string p3 make_sharedstring(6, 5);通常用定义一个auto对象来保存make_shared结果 // 指向一个值为默认值的int的shared_ptr0 auto p4 make_sharedint();2. 拷贝和赋值 通过拷贝和赋值也可以初始化。 auto p make_sharedint(4); // p指向的引用对象只有p一个引用者此对象引用计数为1 auto q(p); // p和q指向的相同对象此对象引用计数递增变为2auto r make_sharedint(4); // r指向的引用对象只有r一个引用者引用计数为1 auto r q; // 给r赋值令它指向另一个地址// 递增q指向的对象的引用计数此对象引用计数变为3// 递减r原来指向的对象的引用计数此引用计数变为0自动释放三、实例 #include iostream #include memory // for std::shared_ptr and std::unique_ptr class Person { public:Person(std::string name, int age) :m_name(name), m_age(age){std::cout Create Person m_name.c_str() m_age std::endl;};~Person(){std::cout Destroy Person m_name.c_str() m_age std::endl;};private:std::string m_name;int m_age; };int main() {// 离开作用域场合{// 创建shared_ptrstd::shared_ptrPerson sharedPtr std::make_sharedPerson(Tom, 10);// 输出引用计数 结果1std::cout SharedPtr uses sharedPtr.use_count() std::endl;{// sharedPtr2和sharedPtr指向同一个对象此对象的引用计数递增变为2std::shared_ptrPerson sharedPtr2 sharedPtr; // sharedPtr2不会调用构造函数因为这个指针和sharedPtr指向的是同一个内存地址// 输出引用计数 结果2std::cout SharedPtr uses sharedPtr.use_count() std::endl;}// 当sharedPtr2离开作用域时其指向对象的引用计数递减变为1此时还有sharedPtr指向该对象。 std::cout SharedPtr uses sharedPtr.use_count() std::endl;}// 当sharedPtr离开作用域时引用计数递减变为0。然后析构函数自动被调用析构函数会检查 shared_ptr 的引用计数如果计数为 0则调用 reset 函数来释放对象不用显示调用并将指针设为null。std::cout Hello World!\n;return 0; }
http://www.zqtcl.cn/news/617731/

相关文章:

  • 如何修改asp网站栏目帝国cms网站搬家教程
  • 网站建设与网页制作小团队兼职做网站
  • 嘉兴做网站的公司网红营销价值
  • scala做网站广州化妆品网站制作
  • 网站建设小组五类成员在线购物网站功能模块
  • 网站建设开发详细步骤流程图网站建设与管理实训报告总结
  • 网站设计的素材旅游网站建设标书
  • 做网站还得备案大企业网站建设多少钱
  • 一般做网站空间大概多少钱电商网站开发公司
  • 海报模板在线制作免费网站如何建设个人网站
  • 网站集群建设的意义如何优化推广网站
  • 怎么给公司做免费网站服装品牌网页设计图片
  • 中国通信建设协会网站新手建网站教程
  • 做网站页面的需要哪些技巧wordpress 网址导航
  • 如何做美食网站设计广州网页设计招聘
  • 中国商标网商标查询官方网站页面模板怎么添加文章
  • 建设基础化学网站的经验如何建设网站pdf下载
  • 外贸公司网站设计公司做网站能挣钱不
  • 免费网站ppt模板下载济南建设网站公司
  • 网站建设技术托管免费空间域名注册免备案
  • 威海住房建设部官方网站专科网站开发就业方向
  • 做外贸网站多少钱成都网页设计专业
  • 北京比较好的网站公司在线医生免费咨询
  • 免费的个人网站怎么做企业网站管理系统软件
  • 枣庄住房和城乡建设局网站如何注册国外域名
  • 满洲里建设局网站网页设计公司的目标客户有哪些
  • 英文书 影印版 网站开发怀化组织部网站
  • 网站建设领域的基本五大策略要学会网站细节
  • dede做英文网站优化cms建站系统哪个好
  • eclipse sdk做网站邯郸技术服务类