面向对象程序设计 ,个第六讲类与对象 t62对的使用 6.3对象成员 猫堂投要 第6章类与对象 6.1类定义与对象声明 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.2 对象的使用 6.3 对象成员
面向对象程序设计 例1.关于日期的类定义及对象的使用 ∥)文件date.h,由于板面小,没有用# ifndef #include < iostream h class Date public 猫堂投要 Date(int d=1,intm=1,inty=200/造函数 第6章类与对象 void print() /打印日期 private 61类定义与对象声明 int day, month, year;) 6.2对象的使用 ∥)文件date.cpp 63对象成员 Date: Date(int d=l, int m=l, int y=2000) 64友员 friend 6.5静态成员和对象组 i day=d; month=m; year=y 织 void Date: print() 6.6模板 { cout < day<" month<"-"≤<year;}67应用举例
第 6章 类与对象 6.1 类定义与对象声明 6.2 对象的使用 6.3 对象成员 6.4 友员 friend 6.5 静态成员和对象组 织 6.6 模板 6.7 应用举例 例1. 关于日期的类定义及对象的使用 //文件 date.h, 由于板面小,没有用#ifndef…… #include class Date { public: Date(int d=1, int m=1, int y=2000);//构造函数 void print( ); //打印日期 private: int day, month, year; }; //文件date.cpp Date::Date(int d=1, int m=1, int y=2000) { day=d; month=m; year=y;} void Date::print( ) { cout << day << "-" << month << "-"<< year; }
面向对象程序设计 ∥)文件 main cpp #include #include " date h void main( date dI(1,3,2000d2;∥定义对象 猫堂投要 cout << date 1= di print(),∥激活操作 print 第6章类与对象 cout <<date 2 61类定义与对象声明 d2 print(),∥激活操作 print 6.2对象的使用 cout< dI day;∥误,私有数据不能由63对象成员 ∥外部访问 64友员 friend 6.5静态成员和对象组 织 结果:date1=1-3-2000 6.6模板 date2=1-1-2000 6.7应用举例
第 6章 类与对象 6.1 类定义与对象声明 6.2 对象的使用 6.3 对象成员 6.4 友员 friend 6.5 静态成员和对象组 织 6.6 模板 6.7 应用举例 //文件 main.cpp #include #include "date.h" void 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
面向对象程序设计 例1有关内容总结 1.如何知道定义多少类的数据成员和成 员函数? 根据对现实世界的抽象,可逐步完善 猫堂投要 2.如何判断成员是公有、保护,还是私有? 第6章类与对象 成员函数一般为公有或保护:数据成员61类定义与对象明 可为保护或私有但不能为公有为什么?63对象成员 3.要定义构造函数。并用三个文件存储,如64友员 friend date. h, date. cpp FA main cpp 6.5静态成员和对象组 织 4.注意对象的定义和使用私有和保护数据66模板 成员是不能从外部直接访问的 6.7应用举例
第 6章 类与对象 6.1 类定义与对象声明 6.2 对象的使用 6.3 对象成员 6.4 友员 friend 6.5 静态成员和对象组 织 6.6 模板 6.7 应用举例 例 1 有关内容总结 1. 如何知道定义多少类的数据成员和成 员函数? 根据对现实世界的抽象, 可逐步完善 2. 如何判断成员是公有、保护,还是私有? 成员函数一般为公有或保护;数据成员 可为保 护或私有,但不能为公有. 为什么? 3. 要定义构造函数。并用三个文件存储,如 date.h, date.cpp 和 main.cpp 4. 注意对象的定义和使用. 私有和保护数据 成员是不能从外部直接访问的
面向对象程序设计 例2.定义类“雇员” ∥)件 employ. h,类的定义 ifndef employ h/避免多次定义 #define employ h class Employee 猫堂投要 public employee();构造函数 第6章类与对象 Employee(char*na, int pid),/构造函数 61类定义与对象声明 void print() 6.2对象的使用 employee)2∥析构函数,为什么要? 63对象成员 private 64友员 friend char*name; int Id;};/姓名和身份证号65静态成员和对象组 #endif 织 注意:由于用到动态存储,必须定义析构函数 6.6模板 6.7应用举例 数据只有姓名和身份证号
第 6章 类与对象 6.1 类定义与对象声明 6.2 对象的使用 6.3 对象成员 6.4 友员 friend 6.5 静态成员和对象组 织 6.6 模板 6.7 应用举例 例2. 定义类“雇员”. //文件 employ.h, 类的定义 #ifndef EMPLOY_H //避免多次定义 #define EMPLOY_H class Employee { public: Employee( ); //构造函数 Employee(char* na, int pid); //构造函数 void print( ); ~Employee(); //析构函数, 为什么要? private: char *name; int ID; } //姓名和身份证号 #endif 注意: 由于用到动态存储, 必须定义析构函数 数据只有姓名和身份证号. ;
面向对象程序设计 ∥)文件 employ. cpp,类的实现 #include include employ. h Employee: Employee ∥-省构造 猫堂投要 name ID=0 Employee: Employee(char* na, int pid) 第6章类与对象 i name=new char[strlen(na) +1l 61类定义与对象声明 strcpy(name, na) 6.2对象的使用 ID=pid; i 63对象成员 void Employee: print() 64友员 friend cout <<"name=<< name <<ID= 6.5静态成员和对象组 < ID<< endl; 织 Employee:- employee()/析构函数 6.6模板 delete]name;删除数组} 6.7应用举例
第 6章 类与对象 6.1 类定义与对象声明 6.2 对象的使用 6.3 对象成员 6.4 友员 friend 6.5 静态成员和对象组 织 6.6 模板 6.7 应用举例 //文件 employ.cpp, 类的实现 #include #include Employee::Employee( ) //缺省构造 { name= " "; ID=0; } Employee::Employee(char* na, int pid) { name=new char[strlen(na)+1]; strcpy(name, na); ID=pid; } #include "employ.h" void Employee::print( ) { cout << "name=" << name << "; ID= " << ID << endl;} Employee::~Employee( ) //析构函数, { delete [ ] name; //删除数组 }
面向对象程序设计 ∥)文件 main. cpp,对象的定义与使用 #include #include <employ hy Empe:00对象2)数 void main( 堂投 Employee el;/创建对象el 对象 el print() 61类定义与对象声明 e2. print(; 6.2对象的使用 cot<e2ID,私有数据不能从外部访问63对象成员 64友员 friend 6.5静态成员和对象组 结果:name=;ID=0; 织 name=Li hua: Id= 322 6.6模板 6.7应用举例
第 6章 类与对象 6.1 类定义与对象声明 6.2 对象的使用 6.3 对象成员 6.4 友员 friend 6.5 静态成员和对象组 织 6.6 模板 6.7 应用举例 //文件 main.cpp, 对象的定义与使用 #include void main( ) { Employee e1; //创建对象 e1 Employee e2( Li Hua , 322); //创建对象 e2 e1.print( ); e2.print( ); cout " " // 私有数据不能从外部访问
面向对象程序设计 例2有关内容总结 1.数据成员具有动态存储时的析构函数 的定义与实现 delete [ name表示删除数组 猫堂投要 第6章类与对象 2.用三个文件存储,如 61类定义与对象声明 employ. h, employ cpp FH main cpp 6.2对象的使用 注意在访间类的操作程序中要包含类的63对象成员 头文件 employ. h 64友员 friend 3.与例1一样,要注意对象的定义和使用 6.5静态成员和对象组 私有和保护数据成员是不能访问的. 织 6.6模板 6.7应用举例
第 6章 类与对象 6.1 类定义与对象声明 6.2 对象的使用 6.3 对象成员 6.4 友员 friend 6.5 静态成员和对象组 织 6.6 模板 6.7 应用举例 例 2 有关内容总结 1. 数据成员具有动态存储时的析构函数 的定义与实现. delete [ ] name; 表示删除数组 2. 用三个文件存储,如 employ.h, employ.cpp 和 main.cpp 注意: 在访问类的操作程序中要包含类的 头文件 employ.h 3. 与例 1 一样, 要注意对象的定义和使用. 私有和保护数据成员是不能访问的
面向对象程序设计 对象成员 问题的提出区数据成员的类型可以是整 数,如 int id,可以是指针,如char*name, 猫堂投要 等等。能否用类作为个类的数据成员?第6章类与对象 6.1类定义与对象声明 答案可以 62对象的使用 6.3对象成员 64友员 friend 6.5静态成员和对象组 作用区丰富对象数成员的表示通过级 用和共享,提高代码的可维护性。 6.7应用举例
第 6章 类与对象 6.1 类定义与对象声明 6.2 对象的使用 6.3 对象成员 6.4 友员 friend 6.5 静态成员和对象组 织 6.6 模板 6.7 应用举例 对象成员 问题的提出 数据成员的类型可以是整 数,如 int ID, 可以是指针,如 char *name, 等等。能否用类作为一个类的数据成员? 答案可以! 作用丰富对象数据成员的表示。通过 简单的类来定义复杂的类。实现代码的重 用和共享,提高代码的可维护性
面向对象程序设计 例3。对象成员的应用.设类 score已知, 其头文件定义 score. h为: class score public:∥公有成员 score( float,foat, float;/构造函数 猫堂投要 scorel ∥构造函数 void printo) /打印成绩 第6章类与对象 void modify( float, float. float);∥修改成绩61类定义与对象声明 private:∥私有成员 62对象的使用 float computer 6.3对象成员 float english 64友员 friend float mathematics 6.5静态成员和对象组 /类结束标志 织 6.6模板 注意:通常也将C++的头文件称为*hp67应用举例
第 6章 类与对象 6.1 类定义与对象声明 6.2 对象的使用 6.3 对象成员 6.4 友员 friend 6.5 静态成员和对象组 织 6.6 模板 6.7 应用举例 例3。对象成员的应用. 设类 score 已知, 其头文件定义 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;