侯捷-C++面向对象高级开发(三大函数:拷贝构造,拷贝赋值,析构)
侯捷-C++面向对象高级开发(三大函数:拷贝构造,拷贝赋值,析构)
三大函数:拷贝构造,拷贝赋值,析构
第一个是拷贝构造,第二个是拷贝赋值
编译器有一套默认的东西实现这俩东西,可用到complex的实现那部分,但是在string这部分加入指针不能适用需要我们自己写
第一个构造函数默认设为0
第二个构造函数是拷贝构造
第三个构造函数是拷贝赋值
第四个是析构函数,以这个类实例化的对象,死亡时会调用析构函数
用完之后内存要释放,这时用到析构函数
class内有指针一般都要做内存分配,对象死亡前要用析构函数将内存释放
这种叫浅拷贝
要避免浅拷贝,因为造成内存泄露也使得原来那个很危险
这种是深拷贝
为什么叫构造?函数名称跟类名称相同
为什么叫拷贝? 因为收到的就是自己那种类型
上图蓝色两行等价
- 杀掉自己
- 创建同样大内存空间
- 赋值
如果不检测自我赋值,第一个动作就杀掉唯一的内存数据后面就会出问题
侯捷-C++面向对象高级开发(三大函数:拷贝构造,拷贝赋值,析构)相关推荐
- 侯捷-C++面向对象高级开发(操作符重载与临时对象)
侯捷-C++面向对象高级开发(操作符重载与临时对象) 1.操作符重载与临时对象 任何成员函数有一个隐藏的this pointer指向,指向调用者. 传递者无需知道接收者是以什么形式接收 就比如下面方框 ...
- 侯捷-C++面向对象高级开发(头文件与类的声明,构造函数,参数传递与返回值)
侯捷-C++面向对象高级开发 1.头文件与类的声明 Object Based:面对的是单一的class的设计 Object Oriented:面对的是多重classes的设计,classes和clas ...
- 侯捷 C++面向对象高级开发(下)笔记整理
C++面向对象高级开发(下) 一.导读 (1)泛型编程和面向对象编程分属不同的思维, (2)由继承关系所形成的对象模型,包含this指针,vptr指针,vtbl虚表,虚机制,以及虚函数造成的多态. 二 ...
- 【C++】侯捷C++面向对象高级编程(下)
转换函数(conversion function) 可以把"这种"东西,转化为"别种"东西. 即Fraction --> double class Fra ...
- 【C++】侯捷C++面向对象高级编程(上)
C++面向对象高级编程 前言 C++ Programs代码基本形式 文件类型 头文件写法 头文件布局 class1--complex 类的声明 inline--内联函数 class访问级别(acces ...
- 173-C++面向对象高级开发-上(侯捷)
1.c++编程简介 类中带有指针和类中不带有指针: 2.头文件与类的声明 c++将数据和函数包在一起. 经典的class分类,带指针和不带指针的,具有代表性的就是我们写的 两个案例: 复数案例和字符案 ...
- 【侯捷面向对象高级开发】第一部分:基于对象 Object Based
第一部分:基于对象 Object Based 以良好的方式编写C++ class class without pointer members (Example Complex) class with ...
- 5. 三大函数:拷贝构造 拷贝赋值 析构函数
String 类 拷贝构造和拷贝赋值应该怎么写 只要类里面带指针,一定不要用编译器的默认拷贝构造函数,一定要自己写 三个特殊函数 String (const char* cstr = 0); //构造 ...
- C++面向对象高级开发(侯捷)——堆、栈与内存管理
stack(栈),heap(堆) Stack:是存在于某作用域(scope)的一个内存空间(memory space).例如当你调用函数,函数本身即会形成一个stack用来放置它所接收的参数,返回地址 ...
最新文章
- Samba服务全攻略
- Xilinx PLL IP核功能仿真
- java 确定对象的引用_JVM学习笔记之了解对象存活判断和4种引用【三】
- sql server 约束
- 学习 shell —— 相对路径转换为绝对路径
- 用python 画炫酷的图并讲解-Python绘制六种可视化图表详解,三维图最炫酷!你觉得呢?...
- python thread start_Python中Thread类的start和run方法的区别
- 轻松处理PHP开发中微信emoji表情mysql存储的问题
- ubuntu20.04下rabbitvcs使用svn无法保存密码
- PHP祝福语,日常祝福语
- 【OS笔记 9】操作系统内核的功能
- 记一次走心One 2 One沟通
- cpufreq 频率设置verify
- 智课雅思词汇---二十六、形容词后缀-ble
- 【Linux】gcc/g++的使用详解静动态库
- 关于打开Excel显示受保护视图空白无内容的问题已解决
- 精读论文:Learning multiple visual domains with residual adapters(附翻译)
- Vue实现顶部导航栏设计
- 自然语言处理之hanlp,Python调用与构建,分词、关键词提取、命名主体识别
- X$BH及V$BH中各字段意义