面向对象程序设计 第五讲类与对象 6.1类定义与对象声明 6.2对象的使用 堂提要 第6章类与对象 61类定义与对象声明 62对象的使用 63对象成员 64友员 friend 6.5静态成员和对象组 织 6.6模板 6.7应用举例
第 6章 类与对象 6.1 类定义与对象声明 6.2 对象的使用 6.3 对象成员 6.4 友员 friend 6.5 静态成员和对象组 织 6.6 模板 6.7 应用举例 6.1 类定义与对象声明 6.2 对象的使用 第五讲 类与对象
面向对象程序设计 6.1类定义与对象声明 为什么定义类把现实世界的事物归纳 成类,以贴近自然的方式描述现实系统 堂提要 第6章类与对象 类的组成类名、数据成员(属性、 6.1类定义与对象声明 data member)、成员函数(服务、 member62对象的使用 function) 63对象成员 64友员 friend 6.5静态成员和对象组 织 6.6模板 6.7应用举例
第 6章 类与对象 6.1 类定义与对象声明 6.2 对象的使用 6.3 对象成员 6.4 友员 friend 6.5 静态成员和对象组 织 6.6 模板 6.7 应用举例 6.1 类定义与对象声明 为什么定义类 把现实世界的事物归纳 成类,以贴近自然的方式描述现实系统 类的组成 类名、数据成员(属性、 data member)、成员函数(服务、member function)
面向对象程序设计 类的定义 class classname//以关键字 class开头 public //类的公有成员 data members;:公有数据成员递堂漫要 member functions;//公有成员函数 protected //类的保护成员 第6章类与对象 data members /保护数据成员6.1类定义与对象声明 member functions;/保护成员函数62对象的使用 private //类的私有成员63对象成员 data members /有数据成员64友员cnd member functions /私有成员函数65静态成员和对象组 };//以括号及分号结束,体现封装 织 6.6模板 缺省时为私有成员( private) 6.7应用举例
第 6章 类与对象 6.1 类定义与对象声明 6.2 对象的使用 6.3 对象成员 6.4 友员 friend 6.5 静态成员和对象组 织 6.6 模板 6.7 应用举例 类的定义 class className //以关键字class 开头 { public: //类的公有成员 data members; //公有数据成员 member functions; //公有成员函数 protected: //类的保护成员 data members; //保护数据成员 member functions; //保护成员函数 private: //类的私有成员 data members; //私有数据成员 member functions; //私有成员函数 }; //以括号及分号结束,体现封装 缺省时为私有成员(private)
面向对象程序设计 例1:定义并实现类 student #include class student∥定义类 i public 类的公有成员 void input(float s)score=s 堂提要 id modify(float s)score=s; 1 void display) 第6章类与对象 i cout <<"n score: <<score;) 6.1类定义与对象声明 private:类私有成员 62对象的使用 float score 63对象成员 64友员 friend void main()∥主函数 6.5静态成员和对象组 student ss;∥声明对象 织 SS. Input(88.5);∥调用成员函数 6.6模板 6.7应用举例 SS display ;i
第 6 章 类与对象 6.1 类定义与对象声明 6.2 对象的使用 6.3 对象成员 6.4 友员 friend 6.5 静态成员和对象组 织 6.6 模板 6.7 应用举例 例 1:定义并实现类 student #include class student //定义类 { public: //类的公有成员 void input(float s) {score=s;} void modify(float s) {score=s;} void display( ) { cout << " \n score: "<< score; } private: //类私有成员 float score; }; void main( ) //主函数 { student ss; //声明对象 ss.input(88.5); //调用成员函数 ss.display( ); }
面向对象程序设计 问题类的定义和实现放在一起好不好? 结论不好! 堂提要 方法类的定义放在 student.h 第6章类与对象 类的实现放在 student.cpp 6.1类定义与对象声明 优点 1。把类的定义与实现分离开来,62对象的使用 便于文挡管理、维护 63对象成员 2。可将类的实现隐蔽起来,使软64友员 friend 件开发商能独立开发软件 6.5静态成员和对象组 便于团体式的大型软件开发。 织 6.6模板 6.7应用举例
第 6章 类与对象 6.1 类定义与对象声明 6.2 对象的使用 6.3 对象成员 6.4 友员 friend 6.5 静态成员和对象组 织 6.6 模板 6.7 应用举例 问题 类的定义和实现放在一起好不好? 结论 不好! 方法 类的定义放在 student.h 类的实现放在 student.cpp 优点 1。把类的定义与实现分离开来, 便于文挡管理、维护。 2。可将类的实现隐蔽起来,使软 件开发商能独立开发软件。 3。便于团体式的大型软件开发
面向对象程序设计 例2:文件 student. h # ifndef student h条件编译 #define student h class student∥定义类 public:∥类的公有成员 堂提要 void input(int n, char * na, float s 第6章类与对象 void modify(float s) void display() 6.1类定义与对象声明 private:类私有成员 62对象的使用 int number;∥学号 63对象成员 64友员 friend char*name;∥姓名 6.5静态成员和对象组 float score;∥成绩 织 6.6模板 #endif 6.7应用举例
第 6章 类与对象 6.1 类定义与对象声明 6.2 对象的使用 6.3 对象成员 6.4 友员 friend 6.5 静态成员和对象组 织 6.6 模板 6.7 应用举例 例2:文件 student.h #ifndef STUDENT_H //条件编译 #define STUDENT_H class student //定义类 { public: //类的公有成员 void input(int n, char *na, float s); void modify(float s); void display( ); private: //类私有成员 int number; //学号 char *name; //姓名 float score; //成绩 }; #endif
面向对象程序设计 例2:文件 student. cpp #include<iostream. h include" student. h"∥必须包含类的定义 void student: input(int n, char *na, float s) number-n 堂提要 score=s name=new char[ strlen(na)+1] 第6章类与对象 strcpy(name, na);) 6.1类定义与对象声明 62对象的使用 void student: modify (float s)score=S;) 63对象成员 64友员 friend void student: display() 6.5静态成员和对象组 cout 织 n number number cout <<"n name. < name 6.6模板 6.7应用举例 cout <<" In score: < score
第 6章 类与对象 6.1 类定义与对象声明 6.2 对象的使用 6.3 对象成员 6.4 友员 friend 6.5 静态成员和对象组 织 6.6 模板 6.7 应用举例 例2:文件 student.cpp #include #include "student.h" //必须包含类的定义 void student::input(int n, char *na, float s) { number=n; score=s; name=new char[strlen(na) + 1]; strcpy(name, na); } void student::modify(float s) {score=s;} void student::display( ) { cout << "\n number: "<< number; cout << "\n name:"<< name; cout << "\n score: "<< score; }
面向对象程序设计 例2:文件 main cpp include" 'student. h"∥要包含类 :student的定义 void main()∥函数 堂提要 student ss;∥声明对象 char na=WANG Qian 第6章类与对象 SS. Input(9901,na,885);∥/调用成员函数 6.1类定义与对象声明 sS display() 62对象的使用 63对象成员 64友员 friend 结果: number:9901 注意:函数6.5静态成员和对象组 name: WANG QIAN input的作用 织 score:88.5 为初始化 6.6模板 6.7应用举例
第 6章 类与对象 6.1 类定义与对象声明 6.2 对象的使用 6.3 对象成员 6.4 友员 friend 6.5 静态成员和对象组 织 6.6 模板 6.7 应用举例 例2:文件 main.cpp #include "student.h "//要包含类student的定义 void main( ) //主函数 { student ss; //声明对象 char na[]= " WANG QIAN "; ss.input(9901, na, 88.5); //调用成员函数 ss.display( ); } 结果: number: 9901 name: WANG QIAN score: 88.5 注意:函数 input的作用 为初始化
面向对象程序设计 例2总结 1。有三个文件: student h(类的头文件) student. cpp(类的实现文件) 堂提要 main cpp(主文件,即应用程序) 2。类的成员函数实现方法是用::引导 第6章类与对象 3。在头文件中应加入条件编译,以免多6对成取声明 如 61类定义与对 void student: display)f 62对象的使 友员 friend 次包含,如:# ifndef STUDENT H 6.5静态成员和对象组 织 4。在 Microsoft visual c+开发环境中的具66模板 体应用(实验课内容) 6.7应用举例
第 6章 类与对象 6.1 类定义与对象声明 6.2 对象的使用 6.3 对象成员 6.4 友员 friend 6.5 静态成员和对象组 织 6.6 模板 6.7 应用举例 例 2 总 结 1。有三个文件: student.h (类的头文件) student.cpp (类的实现文件) main.cpp (主文件,即应用程序) 2。类的成员函数实现方法是用 :: 引导。 如: void student::display( ) {……} 4。在Microsoft Visual C++开发环境中的具 体应用(实验课内容) 3。在头文件中应加入条件编译,以免多 次包含, 如:#ifndef STUDENT_H …
面向对象程序设计 对象的声明 例3:对象的声明及成员函数调用 #include student h void main() 堂提要 student s2 s2nput(9902,"Li"390); 第6章类与对象 s2 display();∥公用成员函数 6.1类定义与对象声明 2 modify(95),∥公用成员函数 62对象的使用 S2 display(;) 63对象成员 结果: number:992 64友员 friend name: Li 6.5静态成员和对象组 score: 90 织 number: 9902 6.6模板 name: Li 6.7应用举例 score: 95
第 6章 类与对象 6.1 类定义与对象声明 6.2 对象的使用 6.3 对象成员 6.4 友员 friend 6.5 静态成员和对象组 织 6.6 模板 6.7 应用举例 对象的声明 例3: 对象的声明及成员函数调用 #include "student.h " void main( ) { student s2; s2.input(9902, "Li ",90); s2.display( ); //公用成员函数 s2.modify(95); //公用成员函数 s2.display( ); } 结果: number: 9902 name: Li score: 90 number: 9902 name: Li score: 95