侯捷-C++面向对象高级开发(三大函数:拷贝构造,拷贝赋值,析构)

三大函数:拷贝构造,拷贝赋值,析构

第一个是拷贝构造,第二个是拷贝赋值

编译器有一套默认的东西实现这俩东西,可用到complex的实现那部分,但是在string这部分加入指针不能适用需要我们自己写

第一个构造函数默认设为0

第二个构造函数是拷贝构造

第三个构造函数是拷贝赋值

第四个是析构函数,以这个类实例化的对象,死亡时会调用析构函数

用完之后内存要释放,这时用到析构函数

class内有指针一般都要做内存分配,对象死亡前要用析构函数将内存释放

这种叫浅拷贝

要避免浅拷贝,因为造成内存泄露也使得原来那个很危险

这种是深拷贝

为什么叫构造?函数名称跟类名称相同

为什么叫拷贝? 因为收到的就是自己那种类型

上图蓝色两行等价

  1. 杀掉自己
  2. 创建同样大内存空间
  3. 赋值

如果不检测自我赋值,第一个动作就杀掉唯一的内存数据后面就会出问题

侯捷-C++面向对象高级开发(三大函数:拷贝构造,拷贝赋值,析构)相关推荐

  1. 侯捷-C++面向对象高级开发(操作符重载与临时对象)

    侯捷-C++面向对象高级开发(操作符重载与临时对象) 1.操作符重载与临时对象 任何成员函数有一个隐藏的this pointer指向,指向调用者. 传递者无需知道接收者是以什么形式接收 就比如下面方框 ...

  2. 侯捷-C++面向对象高级开发(头文件与类的声明,构造函数,参数传递与返回值)

    侯捷-C++面向对象高级开发 1.头文件与类的声明 Object Based:面对的是单一的class的设计 Object Oriented:面对的是多重classes的设计,classes和clas ...

  3. 侯捷 C++面向对象高级开发(下)笔记整理

    C++面向对象高级开发(下) 一.导读 (1)泛型编程和面向对象编程分属不同的思维, (2)由继承关系所形成的对象模型,包含this指针,vptr指针,vtbl虚表,虚机制,以及虚函数造成的多态. 二 ...

  4. 【C++】侯捷C++面向对象高级编程(下)

    转换函数(conversion function) 可以把"这种"东西,转化为"别种"东西. 即Fraction --> double class Fra ...

  5. 【C++】侯捷C++面向对象高级编程(上)

    C++面向对象高级编程 前言 C++ Programs代码基本形式 文件类型 头文件写法 头文件布局 class1--complex 类的声明 inline--内联函数 class访问级别(acces ...

  6. 173-C++面向对象高级开发-上(侯捷)

    1.c++编程简介 类中带有指针和类中不带有指针: 2.头文件与类的声明 c++将数据和函数包在一起. 经典的class分类,带指针和不带指针的,具有代表性的就是我们写的 两个案例: 复数案例和字符案 ...

  7. 【侯捷面向对象高级开发】第一部分:基于对象 Object Based

    第一部分:基于对象 Object Based 以良好的方式编写C++ class class without pointer members (Example Complex) class with ...

  8. 5. 三大函数:拷贝构造 拷贝赋值 析构函数

    String 类 拷贝构造和拷贝赋值应该怎么写 只要类里面带指针,一定不要用编译器的默认拷贝构造函数,一定要自己写 三个特殊函数 String (const char* cstr = 0); //构造 ...

  9. C++面向对象高级开发(侯捷)——堆、栈与内存管理

    stack(栈),heap(堆) Stack:是存在于某作用域(scope)的一个内存空间(memory space).例如当你调用函数,函数本身即会形成一个stack用来放置它所接收的参数,返回地址 ...

最新文章

  1. Samba服务全攻略
  2. Xilinx PLL IP核功能仿真
  3. java 确定对象的引用_JVM学习笔记之了解对象存活判断和4种引用【三】
  4. sql server 约束
  5. 学习 shell —— 相对路径转换为绝对路径
  6. 用python 画炫酷的图并讲解-Python绘制六种可视化图表详解,三维图最炫酷!你觉得呢?...
  7. python thread start_Python中Thread类的start和run方法的区别
  8. 轻松处理PHP开发中微信emoji表情mysql存储的问题
  9. ubuntu20.04下rabbitvcs使用svn无法保存密码
  10. PHP祝福语,日常祝福语
  11. 【OS笔记 9】操作系统内核的功能
  12. 记一次走心One 2 One沟通
  13. cpufreq 频率设置verify
  14. 智课雅思词汇---二十六、形容词后缀-ble
  15. 【Linux】gcc/g++的使用详解静动态库
  16. 关于打开Excel显示受保护视图空白无内容的问题已解决
  17. 精读论文:Learning multiple visual domains with residual adapters(附翻译)
  18. Vue实现顶部导航栏设计
  19. 自然语言处理之hanlp,Python调用与构建,分词、关键词提取、命名主体识别
  20. X$BH及V$BH中各字段意义

热门文章

  1. 智能家居Homekit系列一智能触摸开关
  2. DSP_1 环境搭建
  3. 自制激光雷达(激光扫描)
  4. Flowable集成钉钉实现抄送发送消息
  5. Java中的封装和继承思想,模拟考试阅卷系统
  6. 优秀室内设计师应该学什么
  7. LabVIEW做CRC校验CRC-16/CCITT-FALSE算法
  8. Oracle项目管理系统之合同请款管理
  9. 蓝牙认证检测实验室授权政策与认可要求解析
  10. 2021年西式面点师(中级)考试及西式面点师(中级)考试试卷