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

如何免费网站建设如何创造一款游戏

如何免费网站建设,如何创造一款游戏,中山 照明 骏域网站建设,建德网站建设说到深拷贝#xff0c;是相对于浅拷贝而言的。弄清了浅拷贝#xff0c;深拷贝也就不言自明了。对C初学者而言#xff0c;所谓浅拷贝在编写程序过程中往往是无感的。我们一般在写一个类时#xff0c;多数情况我们只是写了成员变量、成员函数#xff0c;有时为了赋初值方便是相对于浅拷贝而言的。弄清了浅拷贝深拷贝也就不言自明了。对C初学者而言所谓浅拷贝在编写程序过程中往往是无感的。我们一般在写一个类时多数情况我们只是写了成员变量、成员函数有时为了赋初值方便再写一个有参构造函数。而析构函数、拷贝构造函 数往往不写。虽然我们没有写这两个函数但多数情况并没有影响我们在程序中完成拷贝操作。例如我们声明一个类        class myClass        {         public:            myClass ( int c )            {               count c            }           int count;          }        这时如果我们进行下面操作        myClass mc1 ( 3 ); //声明mc1对象并对mc1.count赋初值3        myClass mc2 ( mc1 ); //声明mc2对象并将将mc1拷贝给mc2        以上两句代码是能正常运行的。那么将mc1拷贝给mc2是哪个函数完成的哪前面讲过我们在写myClass类时如果我们只声明成员变量其它都不写那么编译器会默认地给类加上三个函数a.默认无参构造函数( 负责初始化 ); b.默认无参析构函数( 负责释放内存 ); c.默认拷贝构造函数( 对属性值进行拷贝 )。正是默认拷贝构造函数完成了将mc1拷贝给mc2的操作这也就是所谓的浅拷贝。        如果我们把上边的类给改动一下比如我们希望这个类生成的对象的某些属性能够生存周期足够长该怎样做呢这时我们会引入new方法将语句 countc 进行改造:        pCount new int( c ); //因为new方法产生的都是指针所以count的声明也需要改为 int* pCount使用时解引用即可        这样pCount指向的值在我们delete前会一直存在 关于new的用法这里不展开 ,满足了延长生存周期的要求。但这种做法会带来一种风险即进行浅拷贝后一旦默认析构函数被调用由于拷贝目标对象与源对象属性里的指针都指向同一个内存空间析构函数会对同一堆区delete两次造成非法操作编译器会报错。如果程序结束前析构函数未被调用程序也可运行但风险仍存在。        这个风险如何排除呢方法就是本文要介绍的深拷贝。听起来很玄其做法简单说就是在做类声明时自己写一个拷贝构造函数在写赋值语句时不是单纯的复制而是再new一次让拷贝目标对象和源对象里的指针各有所指不再指向同一地址。讲着复杂还是举一个完整的例子做说明     class myClass     {     public:        int* pCount; //类属性值        //有参构造函数用于赋初值        myClass ( int c )         {           pCountnew int(c); //在堆区开辟内存空间保存属性值实际使用时要记得在适当地方delete pCount         }        //有参拷贝构造函数用于对象间复制        myClass(const myClass mc)         {           pCountnew int(*mc.pCount);//有参构造中的是一次new这里是二次new等于是有重新开辟了一块内存        }        //析构函数        ~myClass()        {         delete pCount;         pCountNULL;        }     }        总结以下深拷贝是为了解决由于使用new方法给浅拷贝带来的同一块内存被delete两次的风险问题。具体方法是在类中再次使用new方法自己写拷贝构造函数。上例中还写了析构函数写析构函数等于加上双保险。总之这里虽没给深拷贝下具体定义但怎样做已经讲明白了。就是自己写拷贝构造函数给复制来的值再另new一个空间。
http://www.zqtcl.cn/news/995316/

相关文章:

  • 自己做网站优化韩国外贸平台
  • 齐河建设局网站长沙市住房和建设局官方网站
  • 萧山区住房和城乡建设局网站wordpress网站合并
  • 做背景网站网站建设与维护制作网页
  • 网站建设公司知名营销型企业网站项目策划表
  • 写作网站哪个最好企业培训机构有哪些
  • 江苏省水利工程建设局网站域名不备案可以正常使用吗
  • 对网站开发语言的统计网站内容建设包括什么
  • 西安高端网站建设怎样开公司
  • 华为做网站免费签名设计在线生成
  • 网站产品整合推广爱网聊的男人是什么心理
  • 武威市建设厅网站汕头seo外包公司
  • 酒泉网站怎么做seo东莞高明网站设计
  • 沧州网站建设联系电话杭州设计公司logo
  • 网站子站点是什么意思亚马逊国际站官网
  • 影视cms哪个好苏州关键词优化搜索排名
  • 杭州微信网站开发网站优化公司免费咨询
  • 宣武富阳网站建设南昌公众号开发公司
  • 免费的网站推荐下载wordpress %s
  • 网站的原理百度旧版本下载
  • 衡水网站建设地方新网域名证书下载
  • 自己做的创意的网站什么是淘宝seo
  • 网站开发包含哪些网站设计实例
  • 网站建设 核算棋牌源码论坛
  • 杭州网站建设案例网页设计程序
  • 网站建设的相关问题湛江网站开发
  • 网站开发作业wordpress用户角色
  • 品牌网站制作建设微信小程序开发需要什么技术
  • 新网站注册国内食品行业网站开发
  • 太原微商网站建设网站里面的视频功能怎么做的