当前位置: 首页 > 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.yayakq.cn/news/210906/

相关文章:

  • 怎么做网站的地图页成都哪里好玩
  • 网站开发标准工厂找订单哪个平台最好
  • 建网站做代理ip成都市网站设
  • 小企业网站建设的小知识如何做公司介绍视频网站
  • 医院 网站建设 新闻兰州做网络优化
  • 网站建设开发价格高吗极路由 做网站
  • 有些网站下方只有版权没有ICPppt设计培训班
  • 网站地址查询ip商丘企业网站建设服务
  • 中国建设银行网站下载安装网站安全代维
  • 网站上网络营销营销策划思路
  • 学前教育网站建设规划建立一个网站
  • 网站开发框架 知乎宁波关键词优化平台
  • 水资源论证网站建设WordPress stock
  • 网站运营做的是什么工作网站开发需求文档怎么写
  • 深圳住房建设局网站首页建设网站需要了解什么
  • 做自己的网站的一般步骤长沙网站建立公司
  • 自己做团购网站怎么样网站支持asp
  • 网站建设软件开发工作室整站模板高端网站建设策划
  • 广西做网站建设的公司网站建设实施计划书
  • 网站建设公司.开发一个官方网站要多少钱
  • 上海专业建网站辽阳网站设计
  • 网站制作多少钱啊唐山网站建设技术外包
  • 企业网站建设的账务处理中铁建设门户网站
  • 如何快速进行网站开发齐河网站建设公司价格
  • 网站制作流程京东网站开发需求
  • 鳌江哪里有做网站线上注册公司网址
  • 网站硬件需求聊城经济技术开发区人才网
  • 网络营销的基本特点google优化排名
  • 新手网站建设教程图书vi设计哪里有
  • wordpress搭建服务器seo免费资源大全