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

科技公司网站欣赏公司图标设计大全免费 logo

科技公司网站欣赏,公司图标设计大全免费 logo,宿州北京网站建设,装宽带多少钱一个月使用智能指针需要添加头文件: 代码如下: #include memoryshared_ptr使用的注意事项: 1.不能使用一个原始地址初始化多个共享智能指针 2.函数不能返回管理了this的共享智能指针对象 3.共享智能指针不能循环引用 初始化: 1.通过构造函数初始化 代码如下: std::shar…使用智能指针需要添加头文件: 代码如下: #include memoryshared_ptr使用的注意事项: 1.不能使用一个原始地址初始化多个共享智能指针 2.函数不能返回管理了this的共享智能指针对象 3.共享智能指针不能循环引用 初始化: 1.通过构造函数初始化 代码如下: std::shared_ptrT 智能指针名字(创建堆内存)2.通过拷贝和移动构造函数初始化 代码如下: #include iostream #include memory using namespace std;int main() {// 使用智能指针管理一块 int 型的堆内存, 内部引用计数为 1shared_ptrint ptr1(new int(520));cout ptr1管理的内存引用计数: ptr1.use_count() endl;//调用拷贝构造函数shared_ptrint ptr2(ptr1);cout ptr2管理的内存引用计数: ptr2.use_count() endl;shared_ptrint ptr3 ptr1;cout ptr3管理的内存引用计数: ptr3.use_count() endl;//调用移动构造函数shared_ptrint ptr4(std::move(ptr1));cout ptr4管理的内存引用计数: ptr4.use_count() endl;std::shared_ptrint ptr5 std::move(ptr2);cout ptr5管理的内存引用计数: ptr5.use_count() endl;return 0; }/*作者: 苏丙榅 链接: https://subingwen.cn/cpp/shared_ptr/#1-2-%E9%80%9A%E8%BF%87%E6%8B%B7%E8%B4%9D%E5%92%8C%E7%A7%BB%E5%8A%A8%E6%9E%84%E9%80%A0%E5%87%BD%E6%95%B0%E5%88%9D%E5%A7%8B%E5%8C%96 来源: 爱编程的大丙*/3.通过std::make_shared初始化 代码如下: 通过 C 提供的 std::make_shared() 就可以完成内存对象的创建并将其初始化给智能指针函数原型如下 templatetypename T,typename ...Args shared_ptrTmake_shared(Args...args);T模板参数的数据类型Args… args 要初始化的数据如果是通过 make_shared 创建对象需按照构造函数的参数列表指定 4.通过reset方法初始化 共享智能指针类提供的 std::shared_ptr::reset 方法函数原型如下 void reset() noexcept;template class Y void reset( Y* ptr );template class Y, class Deleter void reset( Y* ptr, Deleter d );template class Y, class Deleter, class Alloc void reset( Y* ptr, Deleter d, Alloc alloc );/*作者: 苏丙榅 链接: https://subingwen.cn/cpp/shared_ptr/#1-3-%E9%80%9A%E8%BF%87std-make-shared%E5%88%9D%E5%A7%8B%E5%8C%96 来源: 爱编程的大丙*/ptr指向要取得所有权的对象的指针d指向要取得所有权的对象的指针aloc内部存储所用的分配器 reset两个功能: 1.让指向某块内存的智能指针解除对这片内存的管理 2.通过reset调用让一个指向某块内存的智能指针指向另块一块内存也就是让它去管理另外一块内存。 两个函数: 如果想要查看当前有多少个智能指针同时管理着这块内存可以使用共享智能指针提供的一个成员函数 use_count函数原型如下 // 管理当前对象的 shared_ptr 实例数量或若无被管理对象则为 0。 long use_count() const noexcept;获取原始指针 对应基础数据类型来说通过操作智能指针和操作智能指针管理的内存效果是一样的可以直接完成数据的读写。但是如果共享智能指针管理的是一个对象那么就需要取出原始内存的地址再操作可以调用共享智能指针类提供的 get () 方法得到原始地址其函数原型如下 T* get() const noexcept;代码如下: #include iostream #include memory #include string using namespace std;class Test { public:Test(){cout construct endl;}Test(int x) :m_num(x){cout construct x x endl;}Test(string str){cout construct str str endl;}~Test(){cout destruct endl;}void setValue(int v){m_num v;}void print(){cout m_num m_num endl;}private:int m_num; };int main() {//通过构造函数初始化shared_ptrintptr1(new int(3));cout ptr1 use_count ptr1.use_count() endl;//通过移动构造和拷贝构造函数初始化shared_ptrintptr2 move(ptr1);cout ptr1 use_count ptr1.use_count() endl;cout ptr2 use_count ptr2.use_count() endl;shared_ptrintptr3 ptr2;cout ptr3 use_count ptr3.use_count() endl;cout ptr2 use_count ptr2.use_count() endl;//通过std::make_shared初始化shared_ptrintptr4 make_sharedint(8);shared_ptrTestptr5 make_sharedTest(8);cout ptr5 use_count ptr5.use_count() endl;shared_ptrTestptr6 make_sharedTest(hello);cout ptr6 use_count ptr6.use_count() endl;//通过reset初始化ptr6.reset();cout ptr6 use_count ptr6.use_count() endl;ptr5.reset(new Test(world));cout ptr5 use_count ptr5.use_count() endl;return 0; }测试结果: shared_ptr的使用: 代码如下: #include iostream #include memory #include string using namespace std;class Test { public:Test(){cout construct endl;}Test(int x) :m_num(x){cout construct x x endl;}Test(string str){cout construct str str endl;}~Test(){cout destruct endl;}void setValue(int v){m_num v;}void print(){cout m_num m_num endl;}private:int m_num; };int main() {//通过构造函数初始化shared_ptrintptr1(new int(3));cout ptr1 use_count ptr1.use_count() endl;//通过移动构造和拷贝构造函数初始化shared_ptrintptr2 move(ptr1);cout ptr1 use_count ptr1.use_count() endl;cout ptr2 use_count ptr2.use_count() endl;shared_ptrintptr3 ptr2;cout ptr3 use_count ptr3.use_count() endl;cout ptr2 use_count ptr2.use_count() endl;//通过std::make_shared初始化shared_ptrintptr4 make_sharedint(8);shared_ptrTestptr5 make_sharedTest(8);cout ptr5 use_count ptr5.use_count() endl;shared_ptrTestptr6 make_sharedTest(hello);cout ptr6 use_count ptr6.use_count() endl;//通过reset初始化ptr6.reset();cout ptr6 use_count ptr6.use_count() endl;ptr5.reset(new Test(world));cout ptr5 use_count ptr5.use_count() endl;//获取原始指针Test *t ptr5.get();t-setValue(1000);t-print();//直接使用ptr5-setValue(999);ptr5-print();return 0; }
http://www.sadfv.cn/news/148033/

相关文章:

  • 个人做网站赚钱网站设计制作ihanshi
  • 卡尺 东莞网站建设网页界面设计用什么软件
  • 清远市住房和城乡建设局门户网站wordpress模版mx
  • 教育局门户网站建设目的wordpress 圆角主题
  • 电子商务网站建设与管理设计报告wordpress 免备案cdn
  • 国外网站空间需要备案吗网站优化建设广州
  • 建筑公司网站源码下载初学者求教怎样做网站
  • 网站顶部展出的大幅广告新乡网站建设加盟电话
  • 中国林业网站群建设工程wordpress加百度商桥变慢
  • 网站建设中行为的名词解释保定模板建站软件
  • 手机网站怎样做传世网站建设
  • 网站被抄袭公众号怎么制作投票活动
  • 如何建设运输网站建设网银怎么提高转账限额
  • 淘客优惠券推广网站怎么做centos7装wordpress
  • 深圳市鸿运通网站建设赣州
  • 为什么实验楼网站上做实验这么卡dw软件个人简历网站怎么做
  • 徐州网站建设外包自定义wordpress的字体大小
  • 受欢迎的网站开发网站怎么做七牛云加速
  • kesion系统做网站教程建设银行网站首页打
  • 长沙网站开软件ui设计软件
  • 贵州中航建设集团网站电子商务网站开发模块流程图
  • 高校网站建设管理制度大型网站开发公司
  • 有哪些做应援的网站找做网站技术人员
  • 网站建设程序代码2017年到2018年建设的网站
  • 兑换网站建设上饶公司做网站
  • 做网站语言学什么有没有卖设计的网站
  • 网站设计大概多少钱网页游戏排行榜2011
  • 免费做网站公司哪家好wordpress网店适合
  • 高端品牌网站建设是什么邵阳市建设局网站首页
  • 文山做网站yunling88wordpress过滤器插件6