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

网站制作完成怎样在手机上无货源开店

网站制作完成,怎样在手机上无货源开店,wordpress视频网站主题,如何用免费服务器做网站一、什么是拷贝构造函数 对于简单变量来说#xff0c;可以轻松完成拷贝。 int a 10; int b a;但是对于复杂的类对象来说#xff0c;不仅存在变量成员#xff0c;也存在各种函数等。因此相同类型的类对象是通过拷贝构造函数来完成复制过程的。 #includeiostream…一、什么是拷贝构造函数 对于简单变量来说可以轻松完成拷贝。 int a 10; int b a;但是对于复杂的类对象来说不仅存在变量成员也存在各种函数等。因此相同类型的类对象是通过拷贝构造函数来完成复制过程的。 #includeiostreamusing namespace std;class String { private:char* m_buffer;unsigned int m_size; public:String(const char* string){m_size strlen(string);m_buffer new char[m_size 1];memcpy(m_buffer, string, m_size);m_buffer[m_size] 0;}~String(){delete[] m_buffer;}friend ostream operator (ostream stream, const String string); }; ostream operator (ostream stream,const String string) {stream string.m_buffer;return stream; } int main() {String a A;String b a;//这里执行拷贝构造函数cout a endl;cout b endl;getchar();return 0; } 可以看到成功拷贝了我们自己设计的String类这里拷贝指的是默认拷贝构造函数即也是浅拷贝当然这段代码是存在问题的 我们可以看到两块指向m_buffer内存地址相同所以会出现多次析构的情况即a对象析构完了将m_buffer释放掉后因为b对象指向的也是m_buffer区域又要释放一次已经释放掉的这也是浅拷贝下面会详细讲解浅拷贝和深拷贝。 二、拷贝构造函数的格式 拷贝构造函数的格式 类名(const 变量类型 other) { ....... }要注意变量一定是本类型的可引用变量 三、拷贝构造函数的调用时机 1. 对象以值传递的方式传入函数参数 2.对象以值传递的方式从函数返回 3.对象需要通过另一个对象进行初始化 Test a(0,1); Test b(a); Test c a;四、浅拷贝和深拷贝 1.浅拷贝上面样例中有涉及到这里就不在详细讲 2.深拷贝 为了解决浅拷贝导致拷贝的对象指向内存与原被拷贝对象一致导致析构两次的问题我们需要手动提供另一种拷贝构造函数的方式————深拷贝。 #includeiostreamusing namespace std;class String { private:char* m_buffer;unsigned int m_size; public:String(const char* string){m_size strlen(string);m_buffer new char[m_size 1];memcpy(m_buffer, string, m_size 1);m_buffer[m_size] 0;}String(const String other):m_size(other.m_size){m_buffer new char[m_size 1];memcpy(m_buffer, other.m_buffer, m_size 1);}~String(){delete[] m_buffer;//防止内存泄露}char operator[](unsigned int index){return m_buffer[index];}friend ostream operator (ostream stream, const String string); }; ostream operator (ostream stream,const String string) {stream string.m_buffer;return stream; } int main() {String a A;String b a;//这里执行拷贝构造函数b[0] B;cout a endl;cout b endl;getchar();return 0; }深拷贝函数代码 String(const String other):m_size(other.m_size){m_buffer new char[m_size 1];memcpy(m_buffer, other.m_buffer, m_size 1);}可以看到两个对象的m_buffer地址不再一样。即拷贝的对象又重新分配了一份自己的m_buffer地址。 但是当我们比如有一些函数我们本来就不需要让他拷贝例如输出之类的函数因为拷贝他们没有任何意义。 这里举一个例子 这里执行后的结果 可以看到跟我们上面二中对象以值传递的方式传入函数参数说的一样它会调用拷贝函数但是这是非常没有效率的因为我们仅仅只是希望它输出而非拷贝一份在输出这样是没有任何意义的。 我们该如何做呢很简单 我们只需要传引用就可以 这样就可以防止无效拷贝导致效率降低的问题了。 重要总是通过const引用去传递对象来减少无效的拷贝来增加效率 以上就是拷贝构造函数的所有内容了如果读者觉得本文章对你有收益还请关注点赞
http://www.zqtcl.cn/news/900072/

相关文章:

  • 建站公司怎么获客任县附近网站建设价格
  • 泰兴市淘宝网站建设指数 网站权重
  • 烟台市做网站找哪家好才艺多网站建设
  • nginx wordpress 重写seo技术大师
  • 公司网站建设需要什么科目上海服务政策调整
  • 如何免费搭建自己的网站网站建设公司swot分析
  • 太原网站优化技术如何开发一款app软件
  • 莆田做网站公司lnmp wordpress 404
  • 网站开发中的qq登录网站地图有什么作用
  • 南宁小程序开发网站建设公司网络营销方案设计范文
  • 电脑做网站主机空间哈尔滨人才招聘信息网
  • 无锡网站建设制作设计wordpress news list
  • 专业建站教程青海 网站开发 图灵
  • 济南网站公司哪家好中国建设银行电脑版
  • 企业网站建设定制网站建设成功案例怎么写
  • 一个网站做数据维护3天正常吗做sgs认证公司网站
  • 免费网络短剧网站摄影素材库网站
  • 如何做竞价网站数据监控网站建设企业的市场分析
  • 电脑做网站主机空间软件开发工作岗位
  • 计算机多媒体辅助教学网站开发响应式网站建设精英
  • 免费网站空间怎么做网站主持人
  • 开源建站系统有哪些网站信息化建设合同
  • 昆明云南微网站淄博专业网站建设
  • 古典网站源码海南app开发
  • 自己做网站前期困难吗怎么早网站上放广告
  • 建设银行招标网站南昌网站建设公司信息
  • 网站建设与管理专业介绍湖南长沙邮政编码
  • 社区论坛系统免费开源seo网站诊断报告
  • 网站LOGO透明底色PNG格式怎么做的开发一款游戏需要多少资金
  • 网站推广营销策略北京东直门网站建设