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

东莞市做阀门的网站wordpress 输出

东莞市做阀门的网站,wordpress 输出,新建的网站必须要备案吗,深圳网站建设讯美最近在复习C的一些相关知识#xff0c;正好把智能指针重新梳理一遍。 智能指针 作用 为什么需要智能指针#xff1f;说白了就是为了更加“方便智能”的管理内存#xff0c;当使用原始指针有时候会因为忘记释放内存#xff0c;从而导致内存泄漏 。智能指针则可以帮我们释放…最近在复习C的一些相关知识正好把智能指针重新梳理一遍。 智能指针 作用 为什么需要智能指针说白了就是为了更加“方便智能”的管理内存当使用原始指针有时候会因为忘记释放内存从而导致内存泄漏 。智能指针则可以帮我们释放new出来的内存。1.auto_ptr auto_ptr 是通过由 new 表达式获得的对象并在 auto_ptr 自身被销毁时删除该对象的智能指针。 它可用于为动态分配的对象提供异常安全、传递动态分配对象的所有权给函数和从函数返回动态分配的对象。复制 auto_ptr 会复制指针并转移所有权给目标 auto_ptr 的复制构造和复制赋值都会修改其右侧参数 而且“副本”不等于原值。因为这些不常见的复制语义不可将 auto_ptr 置于标准容器中。 此用途及其他使用更适合用 std::unique_ptr 。 (C11 起)示例 #include iostream #include memory using namespace std;class Test {int a; public:Test() : a(0) {cout a 0 endl;}//explicit Test(int i) : a(i) {cout int;}Test(int i) : a(i) {cout a: a endl;}Test(short s) : a(s) {cout short;}Test operator(int n) {a n; cout operator;}~Test(){cout 析构 endl;} };int main() {auto_ptrTest t(new Test(5));auto_ptrTest t1(new Test);//auto_ptrint [] t2(new int[5]); //不支持2unique_ptrint [] t3(new int[5]);cout t.get() endl;cout t1.get() endl;t t1; //(1) ,建议不要这样使用cout t.get() endl;cout t1.get() endl; return 0; }现在一般不使用auto_ptr,主要其存在诸多弊端 1.复制或者赋值都会改变资源的所有权 见代码1 2.在STL容器中使用auto_ptr存在着重大风险因为容器内的元素必须支持可复制和可赋值原因可参考1 3.不支持对象数据内存管理见2所以C11用更严谨的unique_ptr 取代了auto_ptr。 unique_ptr 1.基于排他所有权模式两个指针不能指向同一个资源 2.无法进行左值unique_ptr复制构造也无法进行左值复制赋值操作但允许临时右值赋值构造和赋值 3.保存指向某个对象的指针当它本身离开作用域时会自动释放它指向的对象。 4.在容器中保存指针是安全的unique_ptrTest t(new Test(5));unique_ptrTest t1(new Test);cout --------------- endl;//t t1; //不支持两个指针不能指向同一资源//unique_ptrTest t2(t1);//不支持,可以理解为不能指向同一资源unique_ptrTest t3(move(t1));//允许移动了所有权,将t1的所有权给了t3shared_ptr std::shared_ptr 是通过指针保持对象共享所有权的智能指针。多个 shared_ptr 对象可占有同一对象。 下列情况之一出现时销毁对象并解分配其内存 1.最后剩下的占有对象的 shared_ptr 被销毁 2.最后剩下的占有对象的 shared_ptr 被通过 operator 或 reset() 赋值为另一指针。 这就是共享模式他很好的解决了unique_ptr的缺点使得多个指针能够指向同一个资源。shared_ptrTest t(new Test(5));shared_ptrTest t1(new Test());cout t.use_count() endl; //引用计数cout t.unique() endl;//判断当前是否仅有一个指针进行管理cout t1.use_count() endl;t1 t;cout t1 t endl;cout t1.use_count() endl; // t1 和 t两个指针进行管理cout t.use_count() endl;cout t.unique() endl;cout ------------------- endl;智能指针常用方法 1.reset 替换所管理的对象 (公开成员函数) 2.swap 交换所管理的对象 (公开成员函数) 3.get 返回存储的指针 (公开成员函数) 4.use_count 返回 shared_ptr 所指对象的引用计数 (公开成员函数) 5.unique (C20 前) 检查所管理对象是否仅由当前 shared_ptr 的实例管理 4和5为共享指针所有
http://www.pierceye.com/news/395938/

相关文章:

  • 自己建企业网站怎么建免费大数据查询
  • 短视频素材免费下载网站江西省城乡建设厅网站
  • 西安做网站公司工资wordpress 导航 分类
  • 网站建设免费教程网页设计图片高清
  • 网站后台源代码东直门小学的网站建设
  • 无锡建设局评职称网站分析 网站
  • 宜昌需要做网站建设的公司python做调查问卷网站
  • 乐陵森大最好的seo优化公司
  • php网站开发实施方案福建建筑信息平台
  • 怎么写公司网站的文案建设网站技术公司简介
  • 陕西做网站的wordpress增加变量
  • 莒南县建设工程网站网站认证方式有几种
  • 举报网站建设自查报告相同网站名
  • 网站建设网站建设公司北京logo设计制作
  • 福州市交通建设集团有限公司 网站全国国家公示系统官网
  • 郑州网站建设蝶动2023年专升本最新政策
  • 江苏网站推广网络企业宣传画册设计公司
  • 沈阳设计网站公司哪家好个人养老保险怎么交费
  • 烟台seo网站推广如何给自己公司设计logo
  • wordpress 图片大小设置梧州网站优化公司
  • 360推广 网站建设豫建设标去哪个网站
  • 职高网站建设知识点国家免费技能培训有哪些
  • 哪个网站有帮忙做公开课课件怎么查那些人输入做网站
  • 怎么做qq钓鱼网站吗有哪些站内推广的方式
  • wap手机网站建设校园论坛网站怎么做
  • 北京专业网站的建设滨州做网站的
  • 网站点击排名wordpress 联系我们
  • 上街免费网站建设seo外包公司优化
  • 营销型网站的三大特点安徽网站设计方案
  • 优化网站推广教程排名做微信公众号页面的网站