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

如何建立公司网站如何做好互联网营销推广

如何建立公司网站,如何做好互联网营销推广,北京网站开发不限年龄,敦煌网外贸平台目录 什么是浅拷贝?浅拷贝的问题使用深拷贝解决浅拷贝问题结束语 什么是浅拷贝? 如果在一个类中没有人为定义拷贝函数,则系统会提供默认拷贝函数。那么在此默认拷贝函数中主要进行了简单的赋值操作,那这个简单的赋值操作我们一般…

目录

      • 什么是浅拷贝?
      • 浅拷贝的问题
      • 使用深拷贝解决浅拷贝问题
      • 结束语

什么是浅拷贝?

如果在一个类中没有人为定义拷贝函数,则系统会提供默认拷贝函数。那么在此默认拷贝函数中主要进行了简单的赋值操作,那这个简单的赋值操作我们一般叫做浅拷贝。

浅拷贝的问题

浅拷贝具体有什么问题,我们先看一个示例,如下所示:

class Student
{
public:Student(const char *name, int Age){pName = (char*)malloc(strlen(name) + 1);strcpy(pName, name);age = Age;}~Student(){cout << "析构函数" <<endl;if (pName != NULL){free(pName);pName = NULL;}}
public:char *pName;int age;
};void test02()
{Student s1("小花", 18);Student s2(s1);cout << "s1 Name=" << s1.pName << " s1 age=" << s1.age << endl;cout << "s2 Name=" << s2.pName << " s2 age=" << s2.age << endl;
}

代码运行结果如下:
在这里插入图片描述

如上图所示,代码并不能正常运行,我们接下来分析原因。

Student s1("小花", 18);

首先我们先实例化对象,并且该对象名为s1,在实例化对象过程中会进行如下几步:

  1. 申请一块内存空间用来存放公有变量pName和age。
  2. 调用构造函数,在堆中申请一块内存空间,将指针name所指向的内容赋值给刚刚在堆中申请的内存空间,则该空间内容为“小花”
  3. 将Age赋值给age。
    最终如下所示:
    在这里插入图片描述
Student s2(s1);

当执行这条语句时,会调用拷贝构造函数,但是我们在类中并没有设定拷贝构造,故会调用系统默认的拷贝构造函数,即浅拷贝。即s2.pName = s1.pName,s2.age = s1.age。如下图所示:
在这里插入图片描述

此时当执行完test02函数时,会调用s1的析构函数和s2的析构函数。我们接下来分析下:


调用s1的析构函数时,会判断pName指向的空间存不存在,如果存在,即释放掉该空间,并将pName指针指向空。同样的操作,当执行s2的析构函数时,也会判断pName指向的空间存不存在,如果存在,则释放掉该空间,但是此时出现一个问题,pName指向的那块空间在执行s1析构函数时已经释放掉了,即再次释放空间时,会出现错误。这就是浅拷贝的问题,也是上述代码没有正常运行的根本原因(同一块空间被释放两次)。


使用深拷贝解决浅拷贝问题

在之前的示例中因为我们没有人为定义拷贝构造函数,使得自动调用了系统的默认拷贝构造函数,才造成同一块内存空间被同时释放两次的现象。那么为了解决这个问题,我们可以通过自己写拷贝构造函数来解决这个问题。

先上代码:

//深拷贝Student(const Student &stu){cout << "自己的拷贝构造函数" << endl;//1.申请空间pName = (char*)malloc(strlen(stu.pName) + 1);//2.拷贝数据strcpy(pName, stu.pName);age = stu.age;}

在这里插入图片描述

运行代码结果如下:
在这里插入图片描述

结束语

如果觉得这篇文章还不错的话,记得点赞 ,支持下!!!

http://www.wangmingla.cn/news/151057.html

相关文章:

  • cms电影网站模板有哪些网站可以免费推广
  • 能优化b2b网站网络营销推广的目的
  • 个体户怎么做购物网站阳江网站建设
  • 建立平台的目的百家港 seo服务
  • 如何做自己的简历网站站长工具网址查询
  • 乌鲁木齐做网站的公司html模板网站
  • 企业信息化建设如何帮助客户理解网站流量孔宇seo
  • 专门做狗猫配套网站有什么意思域名注册信息查询whois
  • 合肥大型网站制种子搜索神器网页版
  • 前端开发招聘信息为什么seo工资不高
  • 网站制作方案介绍及要求友情链接网站
  • 快速建设网站免费视频教程google adwords
  • 无锡网站策划公司网络舆情案例分析
  • 亚洲购物网站排名竞价托管外包服务
  • 长春广告公司网站建设外贸获客软件
  • 网站界面设计规划中国域名注册官网
  • 高网站建设关键词优化一年的收费标准
  • 网站改版有什么影响下载手机百度最新版
  • 大丰做网站找哪家好优化公司治理结构
  • 滁州市大滁城建设网站百度小程序
  • 有做机械工装的网站吗网站维护一年一般多少钱?
  • 为什么一个网站做中英文双语版西安网站建设推广优化
  • 播视频网站开发百度搜索指数和资讯指数
  • 做网站可以赚钱吗?想要推广网页正式版
  • 购买主机可以做网站吗百度pc端网页版
  • 苹果软件 做ppt模板下载网站有哪些内容网上电商怎么做
  • 为公司建立网站企业培训课程名称大全
  • asp网站编辑教程文件关键词搜索工具
  • 信息发布网站怎么做厦门网络推广培训
  • 黄冈网站推广软件视频网站打开