北大青鸟:《C++》PPT教学课件 第四章 特殊的函数

北大青鸟 c 第四章 特殊的函数 Ⅴ ersion3.0 CHA
Version 3.0 特殊的函数 第四章

回顾 类 成员变量 成员函数 thi指针 对象数组 北大青鸟
2 回顾 • 类 • 成员变量 • 成员函数 • this 指针 • 对象数组

目标 复制构造函数 ·复制赋值操作符 类型转换构造函数 类型转换函数 北大青鸟
3 目标 • 复制构造函数 • 复制赋值操作符 • 类型转换构造函数 • 类型转换函数

复制构造函数31 在下列情况,会调用复制构造函数 将某个对象初始化为类的另一个对象时 将对象当作参数传递给函数时 函数返回对象时 北大青鸟
4 复制构造函数 3-1 • 在下列情况,会调用复制构造函数 – 将某个对象初始化为类的另一个对象时 – 将对象当作参数传递给函数时 – 函数返回对象时

复制构造函数32 如果没有定义复制构造函数,编译器将自 动生成一个 自动生成的复制构造函数只是将对象内容 逐个字节地copy 当数据成员有指针时,将导致两个对象的 指针指向同一个地址 北大青鸟
5 复制构造函数 3-2 • 如果没有定义复制构造函数,编译器将自 动生成一个 • 自动生成的复制构造函数只是将对象内容 逐个字节地copy • 当数据成员有指针时,将导致两个对象的 指针指向同一个地址

复制构造函数33 定义 以对象的引用作为参数的构造函数 X:: X(X &ptr 或 X:: X(const x &ptr) 使用 const关键字,可以确保复制过程不会 意外地更改源对象 6 北大青鸟
6 复制构造函数 3-3 • 定义 以对象的引用作为参数的构造函数 X::X(X &ptr) 或 X::X(const X &ptr) • 使用 const 关键字,可以确保复制过程不会 意外地更改源对象

赋值操作符41 默认的赋值操作符只是逐个字节地将源对 象复制到目标对象 #include void main o class varl int ptr; vax1s1(20); public: Var1 s2 Vario i s2.sh。w(); ptr new inti 2 s1 七r s2.sh。w() Varl (int i)[ p七r new ln七 ptr=工 s2的ptr和s1的ptr void show ( 到同一个 cout < *ptr < endli 北大青鸟
7 赋值操作符 4-1 • 默认的赋值操作符只是逐个字节地将源对 象复制到目标对象 #include class Var1 { int * ptr; public: Var1() { ptr = new int; *ptr = 0; } Var1(int i) { ptr = new int; *ptr = i; } void show () { cout << *ptr << endl; } }; void main() { Var1 s1(20); Var1 s2; s2.show(); s2 = s1; s2.show(); } s2的ptr和s1的ptr 指到同一个位 置

赋值操作符42 演示默认的赋值操作符 北大青鸟
8 赋值操作符 4-2 演示默认的赋值操作符

赋值操作符43 增加 Varl operator =(const Varl s *ptr *(s ptr)i return *this 两个对象的pt指向不同的位置 北大青鸟
9 赋值操作符 4-3 增加: Var1 & operator = (const Var1 & s) { *ptr = *(s.ptr); return *this; } • 两个对象的ptr指向不同的位置

赋值操作符44 演示自定义赋值操作符 北大青鸟
10 赋值操作符 4-4 演示自定义赋值操作符
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 北大青鸟:《C++》PPT教学课件 第三章 数据抽象.ppt
- 北大青鸟:《C++》PPT教学课件 第二章 高级函数特性.ppt
- 《C语言程序设计》课程教学资源:PPT教学课件 总复习.ppt
- 长沙理工大学:《通信原理》课程教学资源(PPT课件)第七章 模拟信号的数字传输(3/3).ppt
- 长沙理工大学:《通信原理》课程教学资源(PPT课件)第七章 模拟信号的数字传输(2/3).ppt
- 长沙理工大学:《通信原理》课程教学资源(PPT课件)第七章 模拟信号的数字传输(1/3).ppt
- 长沙理工大学:《通信原理》课程教学资源(PPT课件)第五章 数字基带传输系统.ppt
- 长沙理工大学:《通信原理》课程教学资源(PPT课件)第四章 模拟调制系统(4.3)AM调制系统性能.ppt
- 长沙理工大学:《通信原理》课程教学资源(PPT课件)第四章 模拟调制系统(4.2)线性调制系统的抗噪声性能.ppt
- 长沙理工大学:《通信原理》课程教学资源(PPT课件)第四章 模拟调制系统(4.1)引言.ppt
- 长沙理工大学:《通信原理》课程教学资源(PPT课件)第三章 信道.ppt
- 长沙理工大学:《通信原理》课程教学资源(PPT课件)第二章 随机信号分析.ppt
- 长沙理工大学:《通信原理》课程教学资源(PPT课件)第一章 绪论(主讲:单树民).ppt
- 中国人民大学:《数据库系统概论 An Introduction to Database System》课程教学资源(PPT课件讲稿)第九章 数据库安全性.ppt
- 中国人民大学:《数据库系统概论 An Introduction to Database System》课程教学资源(PPT课件讲稿)第八章 并发控制.ppt
- 中国人民大学:《数据库系统概论 An Introduction to Database System》课程教学资源(PPT课件讲稿)第七章 数据库恢复技术.ppt
- 中国人民大学:《数据库系统概论 An Introduction to Database System》课程教学资源(PPT课件讲稿)第六章 数据库设计(6.5、6.6、6.7、6.8).ppt
- 中国人民大学:《数据库系统概论 An Introduction to Database System》课程教学资源(PPT课件讲稿)第六章 数据库设计(6.4)逻辑结构设计.ppt
- 中国人民大学:《数据库系统概论 An Introduction to Database System》课程教学资源(PPT课件讲稿)第六章 数据库设计(6.3)概念结构设计.ppt
- 中国人民大学:《数据库系统概论 An Introduction to Database System》课程教学资源(PPT课件讲稿)第六章 数据库设计(6.1-6.2)数据库设计概述、需求分析.ppt
- 北大青鸟:《C++》PPT教学课件 第五章 流.ppt
- 北大青鸟:《C++》PPT教学课件 第六章 文件操作和异常.ppt
- 北大青鸟:《C++》PPT教学课件 第七章 友员.ppt
- 北大青鸟:《C++》PPT教学课件 第八章 继承.ppt
- 北大青鸟:《C++》PPT教学课件 第九章 多态.ppt
- 北大青鸟:《C++》PPT教学课件 第十章 模板.ppt
- 北大青鸟:《C++》PPT教学课件 第一章 C++概述.ppt
- 重庆三峡职业学院:《商品网络防伪查询系统》讲义(毕业论文).doc
- 北京大学出版社:《C语言》PPT教学课件 第一章 C语言概述.ppt
- 北京大学出版社:《C语言》PPT教学课件 第二章 程序的灵魂一算法.ppt
- 北京大学出版社:《C语言》PPT教学课件 第三章 数据类型、运算符与表达式.ppt
- 北京大学出版社:《C语言》PPT教学课件 第四章 最简单的c程序设计.ppt
- 北京大学出版社:《C语言》PPT教学课件 第五章 选择结构程序设计.ppt
- 北京大学出版社:《C语言》PPT教学课件 第六章 循环控制.ppt
- 北京大学出版社:《C语言》PPT教学课件 第七章 数组.ppt
- 《Oracle数据库基础教程》教学资源(PPT课件讲稿)第2章 数据库服务器的安装与卸载.ppt
- 《Oracle数据库基础教程》教学资源(PPT课件讲稿)第3章 创建数据库.ppt
- 《Oracle数据库基础教程》教学资源(PPT课件讲稿)第4章 Oracle企业管理器.ppt
- 《Oracle数据库基础教程》教学资源(PPT课件讲稿)第5章 SQLPLUS.ppt
- 《Oracle数据库基础教程》教学资源(PPT课件讲稿)第6章 物理存储结构.ppt