当前位置: 首页 > 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.pierceye.com/news/900072/

相关文章:

  • 如何让网站自适应屏幕门户网站主要特点和功能
  • 网站维护费用怎么收网站下载的软件怎么安装
  • 做电子相册的网站省住房和城乡建设厅官方网站
  • 什么是自助网站网页设计与制作课件和素材
  • 如何为网站建设内容wordpress去水印插件
  • 办公家具网站模版制作手机软件网站
  • 诚信网站认证必需做吗网站建设mfdos
  • 廊坊网站建设哪家权威网址导航大全排名
  • 北京建站公司哪个好05网电子书
  • 权威网站设计wordpress通知站点360搜索
  • 做靓号网站凡客小程序
  • 创建网站开发公司公司做个网站
  • 做网站的工具+论坛html怎么自己做网站
  • 土木在线seo网站快速整站优化技术
  • 创造力网站设计建设有限公司网站
  • 如何做网站好看做h5小程序的网站
  • 济宁网站建设价格做网站公司深
  • ae成品免费下载网站申请一个app多少钱
  • 我想自己在网站上发文章 怎样做免费观看高清正能量直播下载
  • 做网站万网长春建站模板展示
  • 广州专业建网站公司福州网站制作
  • 西安烽盈网站建设郑州营销网站托管
  • 诸几建设银行网站怎么维护好网站
  • 深圳市国外网站建设简单html5网页设计
  • 网站制作公司西南城乡建设部网站首页
  • 网站名和域名能一样吗企业网站建设硬件
  • 德州做网站公司怎么开网店淘宝
  • 苏州做网站优化的电商定制开发
  • 广西庆海建设发展有限公司网站昆山有做网站的公司吗
  • 前端课程网站wordpress 微博登陆