面向对象程序设计第六讲_第1页
面向对象程序设计第六讲_第2页
面向对象程序设计第六讲_第3页
面向对象程序设计第六讲_第4页
面向对象程序设计第六讲_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第4章章 类与对象类与对象4.1 类定义与对象声明类定义与对象声明4.2 对象的使用对象的使用4.3 对象成员对象成员4.4 友员友员 friend4.5 静态成员和对象组静态成员和对象组 织织4.6 模板模板4.7 应用举例应用举例第六讲 类与对象 4.2 对象的使用 4.3 对象成员第第4章章 类与对象类与对象4.1 类定义与对象声明类定义与对象声明4.2 对象的使用对象的使用4.3 对象成员对象成员4.4 友员友员 friend4.5 静态成员和对象组静态成员和对象组 织织4.6 模板模板4.7 应用举例应用举例例1. 关于日期的类定义及对象的使用 /文件 date.h, 由于板面小,

2、没有用#ifndef#include class Date public: Date(int d=1, int m=1, int y=2000);/构造函数 void print( ); /打印日期private: int day, month, year; ;/文件date.cppDate:Date(int d=1, int m=1, int y=2000) day=d; month=m; year=y;void Date:print( ) cout day - month - year; 第第4章章 类与对象类与对象4.1 类定义与对象声明类定义与对象声明4.2 对象的使用对象的使用4.3

3、 对象成员对象成员4.4 友员友员 friend4.5 静态成员和对象组静态成员和对象组 织织4.6 模板模板4.7 应用举例应用举例/文件 main.cpp#include #include date.hvoid main( ) date d1(1, 3, 2000), d2; /定义对象 cout date 1= ; d1.print( ); /激活操作 print cout date 2= ; d2.print( ); /激活操作 print cout d1.day; /错误, 私有数据不能由 /外部访问结果: date 1= 1-3-2000 date 2= 1-1-2000第第4章章

4、 类与对象类与对象4.1 类定义与对象声明类定义与对象声明4.2 对象的使用对象的使用4.3 对象成员对象成员4.4 友员友员 friend4.5 静态成员和对象组静态成员和对象组 织织4.6 模板模板4.7 应用举例应用举例例 1 有关内容总结1. 如何知道定义多少类的数据成员和成 员函数? 根据对现实世界的抽象, 可逐步完善2. 如何判断成员是公有、保护,还是私有? 成员函数一般为公有或保护;数据成员 可为保 护或私有,但不能为公有. 为什么?3. 要定义构造函数。并用三个文件存储,如 date.h, date.cpp 和 main.cpp4. 注意对象的定义和使用. 私有和保护数据 成员

5、是不能从外部直接访问的第第4章章 类与对象类与对象4.1 类定义与对象声明类定义与对象声明4.2 对象的使用对象的使用4.3 对象成员对象成员4.4 友员友员 friend4.5 静态成员和对象组静态成员和对象组 织织4.6 模板模板4.7 应用举例应用举例例2. 定义类“雇员”. /文件 employ.h, 类的定义#ifndef EMPLOY_H /避免多次定义#define EMPLOY_Hclass Employee public: Employee( ); /构造函数 Employee(char* na, int pid); /构造函数 void print( ); Employee

6、(); /析构函数, 为什么要?private: char *name; int ID; /姓名和身份证号#endif注意: 由于用到动态存储, 必须定义析构函数 数据只有姓名和身份证号.; 第第4章章 类与对象类与对象4.1 类定义与对象声明类定义与对象声明4.2 对象的使用对象的使用4.3 对象成员对象成员4.4 友员友员 friend4.5 静态成员和对象组静态成员和对象组 织织4.6 模板模板4.7 应用举例应用举例/文件 employ.cpp, 类的实现#include#includeEmployee:Employee( ) /缺省构造 name= ; ID=0; Employee:

7、Employee(char* na, int pid) name=new charstrlen(na)+1; strcpy(name, na); ID=pid; #include employ.hvoid Employee:print( ) cout name= name ; ID= ID endl;Employee:Employee( ) /析构函数, delete name; /删除数组 第第4章章 类与对象类与对象4.1 类定义与对象声明类定义与对象声明4.2 对象的使用对象的使用4.3 对象成员对象成员4.4 友员友员 friend4.5 静态成员和对象组静态成员和对象组 织织4.6

8、模板模板4.7 应用举例应用举例/文件 main.cpp, 对象的定义与使用#include void main( ) Employee e1; /创建对象 e1 Employee e2( Li Hua , 322); /创建对象 e2 e1.print( ); e2.print( ); cout e2.ID;结果: name= ; ID=0; name=Li Hua; ID= 322#include / 私有数据不能从外部访问第第4章章 类与对象类与对象4.1 类定义与对象声明类定义与对象声明4.2 对象的使用对象的使用4.3 对象成员对象成员4.4 友员友员 friend4.5 静态成员和

9、对象组静态成员和对象组 织织4.6 模板模板4.7 应用举例应用举例例 2 有关内容总结1. 数据成员具有动态存储时的析构函数 的定义与实现. delete name; 表示删除数组2. 用三个文件存储,如 employ.h, employ.cpp 和 main.cpp 注意: 在访问类的操作程序中要包含类的 头文件 employ.h3. 与例 1 一样, 要注意对象的定义和使用. 私有和保护数据成员是不能访问的.第第4章章 类与对象类与对象4.1 类定义与对象声明类定义与对象声明4.2 对象的使用对象的使用4.3 对象成员对象成员4.4 友员友员 friend4.5 静态成员和对象组静态成员

10、和对象组 织织4.6 模板模板4.7 应用举例应用举例对象成员问题的提出 数据成员的类型可以是整数,如 int ID, 可以是指针,如 char *name,等等。能否用类作为一个类的数据成员? 答案 可以!作用 丰富对象数据成员的表示。通过简单的类来定义复杂的类。实现代码的重用和共享,提高代码的可维护性。第第4章章 类与对象类与对象4.1 类定义与对象声明类定义与对象声明4.2 对象的使用对象的使用4.3 对象成员对象成员4.4 友员友员 friend4.5 静态成员和对象组静态成员和对象组 织织4.6 模板模板4.7 应用举例应用举例例3。对象成员的应用. 设类 score 已知,其头文件

11、定义 score.h 为:class score public: /公有成员 private: /私有成员; /类结束标志注意:通常也将C+的头文件称为 *.hpp score(float, float, float); /构造函数 score( ); /构造函数 void print( ); /打印成绩 void modify( float, float, float); /修改成绩 float computer; float english; float mathematics; 第第4章章 类与对象类与对象4.1 类定义与对象声明类定义与对象声明4.2 对象的使用对象的使用4.3 对象成

12、员对象成员4.4 友员友员 friend4.5 静态成员和对象组静态成员和对象组 织织4.6 模板模板4.7 应用举例应用举例/文件 score.cpp#include “score.h” /可否不包含 score.h?#include score:score(float c,float e, float m) /构造函数 computer = c; english = e; mathematics =m; score:score( ) computer=english=mathematics=0; /缺省构造函数void score:modify(float c,float e, float

13、 m) computer=c; english=e; mathematics =m; void score:print( ) cout n score computer: computer n score english: english n score mathematics: mathematics; 第第4章章 类与对象类与对象4.1 类定义与对象声明类定义与对象声明4.2 对象的使用对象的使用4.3 对象成员对象成员4.4 友员友员 friend4.5 静态成员和对象组静态成员和对象组 织织4.6 模板模板4.7 应用举例应用举例定义类student, 并将类score作为其成员/文件

14、 student.h#include score.h /包含类 scoreclass student /定义类 studentpublic: /公有成员private:; student(int, char *, float, float, float); student( ); /析构函数 void modify(int, char *, float, float, float) void print( );int number; /学号char *name; /姓名score s; /成绩, 是类 score的对象第第4章章 类与对象类与对象4.1 类定义与对象声明类定义与对象声明4.2

15、对象的使用对象的使用4.3 对象成员对象成员4.4 友员友员 friend4.5 静态成员和对象组静态成员和对象组 织织4.6 模板模板4.7 应用举例应用举例问题的提出 构造函数如何写? 数据成员 s 如何初始化? 如何访问 s 中的成员函数?解决的方法 在构造函数中调用 s 的构造函数. 像对类中常量和引用一样,采用初始化表 来初始化类中的成员数据 s. s 中的成员函数可由对象 s 发送消息激活. 第第4章章 类与对象类与对象4.1 类定义与对象声明类定义与对象声明4.2 对象的使用对象的使用4.3 对象成员对象成员4.4 友员友员 friend4.5 静态成员和对象组静态成员和对象组

16、织织4.6 模板模板4.7 应用举例应用举例/文件 student.cpp#include student.h /可否包含 score.h?student:student(int n, char *na, float s1,float s2, float s3):s(s1,s2,s3) number =n; name=new charstrlen(na) + 1; strcpy(name, na); student:student( ) delete name; /析构函数void student:modify(int n, char *na, float s1, float s2, floa

17、t3) number = n; name =na; s.modify(s1, s2, s3); / 调用类 s 的成员函数 void student:print( ) cout n number: number name: name; s.print( ); / 调用类 s 的成员函数 第第4章章 类与对象类与对象4.1 类定义与对象声明类定义与对象声明4.2 对象的使用对象的使用4.3 对象成员对象成员4.4 友员友员 friend4.5 静态成员和对象组静态成员和对象组 织织4.6 模板模板4.7 应用举例应用举例/文件 main.cpp#include student.h /包含类stu

18、dent 的定义void main ( ) student astudent(28, Wu , 78, 64, 69); astudent.print( ); astudent.modify(28, Wu , 87, 72, 70); astudent.print( ); 结果: number: 28 name: Wu score computer:78 score English:64 score mathematics:69 number: 28 name: Wu score computer:87 score English:72 score mathematics:70第第4章章 类与

19、对象类与对象4.1 类定义与对象声明类定义与对象声明4.2 对象的使用对象的使用4.3 对象成员对象成员4.4 友员友员 friend4.5 静态成员和对象组静态成员和对象组 织织4.6 模板模板4.7 应用举例应用举例例 3 有关内容总结1. 类数据成员可以是另一个类的对象: score s; /以 score 的对象 s 作为成员2. 对对象成员的初始化是通过初始化表来调 用原类的构造函数,参数必须由新类指定。 student:student(int n, char *na, float s1,float s2, float s3):s(s1,s2,s3) student astudent

20、(28, Wu , 78, 64, 69); 3. 对象成员的构造函数先于新对象的构造 函数被执行。4. 对象成员的成员函数可由该对象访问。 s.print( ); s.modify(s1, s2, s3);第第4章章 类与对象类与对象4.1 类定义与对象声明类定义与对象声明4.2 对象的使用对象的使用4.3 对象成员对象成员4.4 友员友员 friend4.5 静态成员和对象组静态成员和对象组 织织4.6 模板模板4.7 应用举例应用举例例4:对象成员的应用。我们已定义了类date 和 employ。现在重新定义employ, 使date 成为 employ 的对象成员。/文件 employ

21、.hpp, 可以用 *.hpp 为头文件#include date.hclass Employee public: Employee( ); /构造函数 Employee(char* na, int pid); /构造函数 void print( ); Employee(); /析构函数, 为什么要?private: char *name; int ID; /姓名和身份证号 Date birthday; /出生日期; 第第4章章 类与对象类与对象4.1 类定义与对象声明类定义与对象声明4.2 对象的使用对象的使用4.3 对象成员对象成员4.4 友员友员 friend4.5 静态成员和对象组静态

22、成员和对象组 织织4.6 模板模板4.7 应用举例应用举例Employee:Employee( ) /析构函数, delete name; /删除数组 /文件 employ.cpp, 类的实现#include#include#include employ.hpp /注意:是*.hpp文件Employee:Employee( ): /缺省构造 name= ; ID=0; Employee:Employee(char* na, int pid, int d, int m, int y):Date(d, m, y) name=new charstrlen(na)+1; strcpy(name, na

23、); ID=pid; void Employee:print( ) cout name= name ; ID= ID endl; birthday.print ( ); 第第4章章 类与对象类与对象4.1 类定义与对象声明类定义与对象声明4.2 对象的使用对象的使用4.3 对象成员对象成员4.4 友员友员 friend4.5 静态成员和对象组静态成员和对象组 织织4.6 模板模板4.7 应用举例应用举例/文件 employ.cpp, 类的实现#include#include employ.hpp /注意:是*.hpp文件void main.( ) Employee e( Li Hua , 32

24、2, 20, 6, 1982); cout Birthday: ; e.print( ); 结果: name=Li Hua; ID= 322 Birthday: 20-6-1982第第4章章 类与对象类与对象4.1 类定义与对象声明类定义与对象声明4.2 对象的使用对象的使用4.3 对象成员对象成员4.4 友员友员 friend4.5 静态成员和对象组静态成员和对象组 织织4.6 模板模板4.7 应用举例应用举例例5:定义时间类,含时、分、秒及显示时间,下一个时间、上一个时间的计算。/文件time.hpp#ifndef TIME_H#define TIME_Hclass time public

25、:private:;#endiftime( int=0, int=0, int=0); /构造函数void print( ); /显示时间void NTime( ); /下一个时间void LTime( ); /上一个时间int hr; /小时int min; /分钟int sec; /秒第第4章章 类与对象类与对象4.1 类定义与对象声明类定义与对象声明4.2 对象的使用对象的使用4.3 对象成员对象成员4.4 友员友员 friend4.5 静态成员和对象组静态成员和对象组 织织4.6 模板模板4.7 应用举例应用举例/文件 time.cpp#include #include time.ht

26、ime:time(int h, int m, int s) hr=h; min=m; sec=s; void time:print( ) cout time: hr - min - sec endl; void time:NTime( ) if(sec=58) sec+; else sec=0; if(min=58) min+; else min=0; if(hr=22) hr+; else hr=0; 第第4章章 类与对象类与对象4.1 类定义与对象声明类定义与对象声明4.2 对象的使用对象的使用4.3 对象成员对象成员4.4 友员友员 friend4.5 静态成员和对象组静态成员和对象组 织织4.6 模板模板4.7 应用举例应用举例void time:LTime( ) if(sec != 0) sec-; else sec=59; if(min != 0) min-; else min=59; if(hr != 0) hr-; else hr=23; 第第4章章 类与对象类与对象4.1 类定义与对象声明类定义与对象声明4.2 对象的使用对象的使用4.3 对象成员对象成员4.4 友员友员 friend4.5 静态成

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论