上泽充通大¥ C+程序设计与实践 第6讲C++类(1) 上海交通大学 机械与动力工程学院 2014.9-2015.1 上海京通大学 1.类与类的封装 2.类的构造与析构 3. 类的继承与派生 SH 1 1
1 1/48 第6讲 C++类(1) C++程序设计与实践 上海交通大学 机械与动力工程学院 2014.9-2015.1 2/48 1. 类与类的封装 2. 类的构造与析构 3. 类的继承与派生
类和对象 口类代表了某一批对象的共性和特征。 口类是对象的抽象,而对象是类的具体实例。 11 10 09:90:5 时钟类 变量:时 76.5 数字钟 秒 操作: 显示时间 设置时间 类和对象 口编程描述一个时钟,具备时间参数和设置、显示时问功能。 口面向过程的实现方式 void main( 在main函数中对不同 时钟的设置操作一一 double hour,minute,second; 写出,使程序冗长 cin>>hour; cin>>minute; cin>>second; 0 cout<<hour<<":"<<minute<<":"<<second<<endl; cin>>hour; cin>>minute; cin>>second; cout<<hour<<":"<<minute<<":"<<second<<endl; 2
2 3 类和对象 类代表了某一批对象的共性和特征。 类是对象的抽象,而对象是类的具体实例。 时钟类 变量: 时 分 秒 操作: 显示时间 设置时间 4 类和对象 面向过程的实现方式 void main() { double hour, minute, second; cin>>hour; cin>>minute; cin>>second; cout<<hour<<":"<<minute<<":"<<second<<endl; cin>>hour; cin>>minute; cin>>second; cout<<hour<<":"<<minute<<":"<<second<<endl; } 在main函数中对不同 时钟的设置操作一一 写出,使程序冗长 编程描述一个时钟,具备时间参数和设置、显示时间功能
类和对象 口面向过程的实现方式利用结构体 结构体中封装 struct Clock 数据成员 { double hour; 。0○ double minute; void main() double second: { Clock cl; ; Set_Time(cl); void Set Time(Clock&cl) Show_Time(cl); cin>>cl.hour; cin>>cl.minute; cin>>cl.second; void Show Time(Clock&cl) cout<<cl.hour<<":"<<clminute<<":"<<cl.second<<endl; 类和对象 口面向对象的实现方式:封装数据和操作一类 类数据类型中的数据既包含数据和操作数据的函数。 class Clocke class类名 int hour; int minute; (数据) int sec; 小时、分、秒 void set time() cin>>hour>>minute>>sec;} void show time() (成员函数) 设置时间 cout<<hour<<“:”<minute<<“:”<<sec<<endl; 显示时间 6 3
3 5 面向过程的实现方式----利用结构体 struct Clock { double hour; double minute; double second; }; void main() { Clock cl; Set_Time(cl); Show_Time(cl); } 结构体中封装 数据成员 void Set_Time(Clock& cl) { cin>>cl.hour; cin>>cl.minute; cin>>cl.second; } void Show_Time(Clock& cl) {cout<<cl.hour<<":"<<cl.minute<<":"<<cl.second<<endl; } 类和对象 6 面向对象的实现方式:封装数据和操作——类 class Clock { int hour; int minute; int sec; void set_time( ) { cin>>hour>>minute>>sec; } void show_time( ) { cout<<hour<<“:”<<minute<<“:”<<sec<<endl; } }; class 类名 (数据) 小时、分、秒 (成员函数) 设置时间 显示时间 类数据类型中的数据既包含数据和操作数据的函数。 类和对象
类和对象 口它的意义在于将相互关联的一组数据和函数封装在一起, 组成一个编程单元:对象。 口使用可以让一组值存放在一起,而且还能为它添加功能。 数据 中 操作 类 hour set time Clock minute show_time second 7 类的声明 口封装:一般把数据隐蔽起来,把成员函数作为对外界的接口。 口成员访问权限控制符:private,public,protected(缺省默 认为private). class Clock { private: 默认值 int hour; int minute; 访问权限 int sec; public: N void set_time(); void show_time(); 4
4 7 它的意义在于将相互关联的一组数据和函数封装在一起, 组成一个编程单元:对象。 使用可以让一组值存放在一起,而且还能为它添加功能。 类和对象 hour minute second set_time show_time Clock 8 类的声明 class Clock { private: int hour; int minute; int sec; public: void set_time( ); void show_time( ); }; 默认值 访问权限 封装:一般把数据隐蔽起来,把成员函数作为对外界的接口。 成员访问权限控制符: private,public,protected(缺省默 认为private)
类的成员函数 口成员函数可以在类体中定义,也可以在类的外面进行函数定义 class Clock public: void set time(); void show time(); private: int hour; int minute; int sec; }; void Clock::show_time() /∥在类外定义shoW_time函数 cout<<hour<<“:”<<minute<<“:”<<sec<<endl; 1/函数体 9 对象定义 1.先声明类类型,然后再定义对象 2.在声明类类型的同时定义对象 class Clock class Clock {public: public: void set_time(); void set time(); void show_time(); void show_time(); private: private: int hour; int hour; int minute; int minute; int sec; int sec; 3: }clk1.clk2; Clock clk1,clk2; /定义了两个Clock类的对象 /类名对象名 class Clock clkl.clk2: /class类名对象名 10 5
5 9 类的成员函数 成员函数可以在类体中定义,也可以在类的外面进行函数定义 class Clock { public: void set_time( ); void show_time( ); private: int hour; int minute; int sec; }; void Clock::show_time( ) //在类外定义show_time函数 { cout<<hour<<“:”<<minute<<“:”<<sec<<endl; //函数体 } 10 对象定义 1.先声明类类型,然后再定义对象 class Clock { public: void set_time( ); void show_time( ); private: int hour; int minute; int sec; }; Clock clk1,clk2; //类名 对象名 class Clock clk1,clk2; //class 类名 对象名 2. 在声明类类型的同时定义对象 class Clock { public: void set_time( ); void show_time( ); private: int hour; int minute; int sec; }clk1,clk2; //定义了两个Clock类的对象