北大青鸟:《C++》PPT教学课件 第七章 友员

北大青鸟 c 第七章 友员 Ⅴ ersion3.0 CHA
Version 3.0 友员 第七章

回顾 文件输入 文件输出 异常处理 北大青鸟
2 回顾 • 文件输入 • 文件输出 • 异常处理

目标 友元函数 友元类 操作符重载 北大青鸟
3 目标 • 友元函数 • 友元类 • 操作符重载

友元函数41 非成员函数不能访问私有成员 友员函数允许访问类的私有部分而不是成员 4000 北大青鸟
4 友元函数 4-1 • 非成员函数不能访问私有成员 • 友员函数允许访问类的私有部分而不是成员

友元函数42 类 友元函数 私有! 闪开!只允许 成员和友元访问 北大青鸟
5 友元函数 4-2 类 友元函数 私有!

友元函数43 class teacher private in七a public: teacher o friend int stud( teacher);没有 friend int stud(teacher tl) return(t1.a);//因为stud()是一个友元 大青鸟
6 友元函数 4-3 class teacher { private: int a; public: teacher() { a = 5; } friend int stud(teacher); }; int stud(teacher t1) { return (t1.a); //因为stud()是一个友元 } 没有friend

友元函数44 class Teacher i //前向声明 class student private: 类只有在声明之 int st data; 后才能被引用 public: v。 id gets tuddata(); friend void display(student abc, Teacher xyz)i class Teacher private: int th data; ublic void getteachdatao)i friend void display (student abc, Teacher xyz)i void display (student abc, Teacher xyz)( //某些代码 我是大家的朋友 大青鸟
7 友元函数 4-4 class Teacher; //前向声明 class Student { private: int st_data; public: void getstuddata(); friend void display(Student abc, Teacher xyz); }; class Teacher { private: int th_data; public: void getteachdata(); friend void display(Student abc, Teacher xyz); }; void display(Student abc, Teacher xyz) { //某些代码 } 我是大家的朋友 类只有在声明之 后才能被引用

友元函数的特性 拥有访问类的私有部分的权限 没有this指针 ·可以置于类说明的私有或公有部分 定义友元函数时,不需要使用类名和作用城 解析操作符作为前綴 北大青鸟
8 友元函数的特性 • 拥有访问类的私有部分的权限 • 没有 this 指针 • 可以置于类说明的私有或公有部分 • 定义友元函数时,不需要使用类名和作用域 解析操作符作为前缀

优点 在接口设计的选择方面提供了自由度 成员函数和友元函数具有同等的特权 主要的区别 友元函数的调用方式类似于 func( object 而成员函数的调用方式类似于 object. func() 设计者可以选择最有可读性的语法 北大青鸟
9 优点 • 在接口设计的选择方面提供了自由度 • 成员函数和友元函数具有同等的特权 – 主要的区别: 友元函数的调用方式类似于 func(xobject) , 而成员函数的调用方式类似于 object.func( ) – 设计者可以选择最有可读性的语法

缺点 提高了编程的灵活性,但是违背了面 向对象编程的原则 在编码中对完整性的破坏可以在一定程 度上加以控制 必须在它要访问的类中进行声明。没 有源代码是无法完成的 北大青鸟
10 缺点 • 提高了编程的灵活性,但是违背了面 向对象编程的原则 – 在编码中对完整性的破坏可以在一定程 度上加以控制 • 必须在它要访问的类中进行声明。没 有源代码是无法完成的
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 北大青鸟:《C++》PPT教学课件 第六章 文件操作和异常.ppt
- 北大青鸟:《C++》PPT教学课件 第五章 流.ppt
- 北大青鸟:《C++》PPT教学课件 第四章 特殊的函数.ppt
- 北大青鸟:《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
- 北大青鸟:《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
- 《Oracle数据库基础教程》教学资源(PPT课件讲稿)第7章 逻辑存储结构.ppt
- 《Oracle数据库基础教程》教学资源(PPT课件讲稿)第8章 数据库实例与操作模式.ppt
- 《Oracle数据库基础教程》教学资源(PPT课件讲稿)第9章 数据库的启动与关闭.ppt