当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

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

资源类别:文库,文档格式:PPT,文档页数:20,文件大小:235KB,团购合买
一、复制构造函数 二、复制赋值操作符 三、类型转换构造函数 四、类型转换函数
点击下载完整版文档(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 演示自定义赋值操作符

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共20页,试读已结束,阅读完整版请下载
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有