山东大学:《Visual C++程序设计》第9章 类和对象(张晓如)

第9章 类和对象
2021/2/24 1 第9章 类和对象

概述 为什么定义类把现实世界的事物归纳成类,以 贴近自然的方式描述现实系统。类是结构的扩展, 可用来对外部函数访问作限制。 局部变量隐藏在函数体内;通→数据量大时,效率低 过函数的参数传递共享变量 使用全局变量,程序中每个函 查错困难 数都可以访问。 使用静态全局变量,局限于文件。 2021/224
2021/2/24 2 为什么定义类 把现实世界的事物归纳成类,以 贴近自然的方式描述现实系统。类是结构的扩展, 可用来对外部函数访问作限制。 概述 局部变量隐藏在函数体内;通 过函数的参数传递共享变量。 使用静态全局变量,局限于文件。 数据量大时,效率低 使用全局变量,程序中每个函 数都可以访问。 查错困难

外部函数可直接访问 破坏了数据的封装特性 结构的成员。 C艹引入类解决上述问题(限制全局变量使用和 构成新类型) 2021/224
2021/2/24 3 C++引入类解决上述问题(限制全局变量使用和 构成新类型) 外部函数可直接访问 结构的成员。 破坏了数据的封装特性

类 什么是类将数据与处理这些数据的函数封装成 个整体,即构成了类。封装可以解决数据与函 数代码之间的相容性和数据的保护问题。 类的组成类名、数据成员(属性、data member)、成员函数(服务、 member function) 与结构不同之处是成员访问说明符。 除该类的成员函数外, 访问说明符 protecta 谁都不得访问 publi 程序中所有函数都可 访问 2021/224
2021/2/24 4 类的组成 类名、数据成员(属性、data member)、成员函数(服务、member function)。 什么是类 将数据与处理这些数据的函数封装成 一个整体,即构成了类。封装可以解决数据与函 数代码之间的相容性和数据的保护问题。 类 与结构不同之处是成员访问说明符。 除该类的成员函数外, 谁都不得访问 程序中所有函数都可 访问 public protected private 访问说明符

proceted所限定的成员为保护成员,它允许该类成员 及该类的派生类成员函数存取保护成员数据或调用保 护成员函数。 注:1.三个关键字的顺序无关紧要,且可多次使用。 2.一个关键字的访问权限自紧跟关键字后的第 个成员 起,至出现另一个限定访问权限的关键字止 3类体中成员的顺序不限,建议成员数据集中 在类体 的前面定义,成员函数集中在类体的后面定义。 类的实例称为对象。 2021/2/24 5
2021/2/24 5 注:1.三个关键字的顺序无关紧要,且可多次使用。 2.一个关键字的访问权限自紧跟关键字后的第一 个成员 起,至出现另一个限定访问权限的关键字止。 3.类体中成员的顺序不限,建议成员数据集中 在类体 的前面定义,成员函数集中在类体的后面定义。 proceted所限定的成员为保护成员,它允许该类成员 及该类的派生类成员函数存取保护成员数据或调用保 护成员函数。 类的实例称为对象

类的定义 class className ∥以关键字clas开 中为类 public 7尖的公有成员 data members: ∥公有数据成员 member functions: ∥公有成员函数 protected: /类的保护成是 data members: 保护数类中定义 member functions;/保护的数据和 private: /类的 函数称为 data members member function /私有类的成员 有成员 ∥以括号及分号结束,体现装 缺省时为私有成员 private 2021/224 6
2021/2/24 6 类的定义 class className //以关键字class 开头 { public: //类的公有成员 data members; //公有数据成员 member functions; //公有成员函数 protected: //类的保护成员 data members; //保护数据成员 member functions; //保护成员函数 private: //类的私有成员 data members; //私有数据成员 member functions; //私有成员函数 }; //以括号及分号结束,体现封装 缺省时为私有成员(private) {}中为类体 类中定义 的数据和 函数称为 类的成员

例1:定义描述一个人的类。 分析:描述一个人的特征用姓名、性别、年龄来表 示。用函数 Registerperson()登录一个人的姓名、性 别和年龄;用函数 getName(来获取一个人的姓名; 用另外两个函数 Getage(和 Getsex()来获取一个人 的年龄和性别。 91 也可省略为如下定义: 911 如下定义时不可省略 912 2021/224
2021/2/24 7 例1:定义描述一个人的类。 分析:描述一个人的特征用姓名、性别、年龄来表 示。用函数RegisterPerson( )登录一个人的姓名、性 别和年龄;用函数getName( )来获取一个人的姓名; 用另外两个函数GetAge( )和GetSex( )来获取一个人 的年龄和性别。 91 也可省略为如下定义: 911 912 如下定义时不可省略:

类的成员函数定义一般格式: 数据类型类名:成员函数名{ 例2:定义 Person的四个成员函数 92 2021/224 8
2021/2/24 8 类的成员函数定义一般格式: 数据类型 类名::成员函数名 { …… } 例2:定义Person的四个成员函数。 92

注:1类中任何成员数据不能使用关键字 extern、 auto或 register限定其存储类型。 2成员函数可直接使用类中的任一成员 3在定义类中的数据成员时,不能对其初始 化。如: class Test int x=5, y=6; ∥误 extern float x ∥误 若定义的成员限于该类的成员函数使用时, 应指定为私有成员,若允许类外使用时,应定义 为公有的。 2021/224 9
2021/2/24 9 注:1.类中任何成员数据不能使用关键字extern、 auto或register限定其存储类型。 2.成员函数可直接使用类中的任一成员。 3.在定义类中的数据成员时,不能对其初始 化。如: class Test{ int x=5,y=6; //错误 extern float x; //错误 … } 4.若定义的成员限于该类的成员函数使用时, 应指定为私有成员,若允许类外使用时,应定义 为公有的

例3:定义并实现类stu #include<iostream.\ udent class student ∥定义类 private: /类私有成员 float score; publics /类的公有成员 void input(float s)score=s void modify (float s)scores;) void display i cout <<n score: < score;) void main(i ∥函数 student ss: 声明对象 SS input(88.5); ∥调用成员函数 SS display; 2021/2/24 10
2021/2/24 10 例3:定义并实现类 student。 #include class student{ //定义类 private: //类私有成员 float score; public: //类的公有成员 void input(float s) {score=s;} void modify(float s) {score=s;} void display( ) { cout << "\n score: "<< score; } }; void main( ) { //主函数 student ss; //声明对象 ss.input(88.5); //调用成员函数 ss.display( ); }
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 山东大学:《Visual C++程序设计》第3章 简单的输入/输出(张晓如).ppt
- 山东大学:《Visual C++程序设计》第7章 结构体、共同体 和枚举类型(张晓如).ppt
- 山东大学:《Visual C++程序设计》第1章 C++概述(张晓如).ppt
- 江苏科技大学电子信息学院计算机系:《VC++实验指导书》.doc
- 江苏科技大学电子信息学院计算机系:《VC++实验指导书》(计12个实验).doc
- 山东大学:高性能感应电机电流控制研究(硕士学位论文,程金路).pdf
- 《Photoshop CS3案例教程》项目四 制作图书封面——图像编辑.ppt
- 《Photoshop CS3案例教程》项目十二 制作下雪的圣诞节动画——动作与动画.ppt
- 《Photoshop CS3案例教程》项目十三 制作旅游网页界面——应用进阶.ppt
- 《Photoshop CS3案例教程》项目十一 制作折页广告——应用通道.ppt
- 《Photoshop CS3案例教程》项目十 制作茶叶包装盒——神奇的滤镜.ppt
- 《Photoshop CS3案例教程》项目六 打造精美电脑桌面——绘画与修饰工具.ppt
- 《Photoshop CS3案例教程》项目八 制作房地产广告——应用文字.ppt
- 《Photoshop CS3案例教程》项目五 制作电影海报——强大的图层.ppt
- 《Photoshop CS3案例教程》项目二 制作化妆品广告——选区制作(上).ppt
- 《Photoshop CS3案例教程》项目九 数码照片处理 ——图像修复与色彩调整.ppt
- 《Photoshop CS3案例教程》项目三 合成照片 ——选区制作(下).ppt
- 《Photoshop CS3案例教程》项目七 制作手提袋 ——形状与路径.ppt
- 《Photoshop CS3案例教程》项目一制作漂亮的贺卡 ——初识Photoshop CS3.ppt
- 《UML及软件建模》第八章 交互视图概论.ppt
- 山东大学:《Visual C++程序设计》第2章 数据类型、运算符和表达式(张晓如).ppt
- 山东大学:《Visual C++程序设计》第5章 函数和编译预处理(张晓如).ppt
- 山东大学:《Visual C++程序设计》第8章 指针和引用(张晓如).ppt
- 山东大学:《Visual C++程序设计》第6章 数组(张晓如).ppt
- 山东大学:《Visual C++程序设计》第11章 继承和派生类(张晓如).ppt
- 山东大学:《Visual C++程序设计》第13章 运算符重载(张晓如).ppt
- 山东大学:《Visual C++程序设计》第12章 类的其他特性(张晓如).ppt
- 山东大学:《Visual C++程序设计》第14章 输入/输出流类库(张晓如).ppt
- 山东大学:《Visual C++程序设计》第10章 构造函数和析构函数(张晓如).ppt
- 山东大学:《Visual C++程序设计》第4章 C++的流程控制语句(张晓如).ppt
- 《单片机相关电子图书资料》51单片机C编程.pdf
- 《单片机相关电子图书资料》精彩51单片机教程.pdf
- 《单片机相关电子图书资料》第十一章 PIC 单片机的 C 语言编程.pdf
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第10章 Visual C++编程实例.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第10讲 对象数组和指针及对象作为函数参数.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第11讲 静态成员及友元.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第12讲 派生类的概念.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第13讲 派生的构造函数和析构函数.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第14讲 多继承.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第15讲 赋值兼容.ppt