《类和对象 》PPT课件.ppt

上传人:小飞机 文档编号:5565918 上传时间:2023-07-28 格式:PPT 页数:74 大小:1.31MB
返回 下载 相关 举报
《类和对象 》PPT课件.ppt_第1页
第1页 / 共74页
《类和对象 》PPT课件.ppt_第2页
第2页 / 共74页
《类和对象 》PPT课件.ppt_第3页
第3页 / 共74页
《类和对象 》PPT课件.ppt_第4页
第4页 / 共74页
《类和对象 》PPT课件.ppt_第5页
第5页 / 共74页
点击查看更多>>
资源描述

《《类和对象 》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《类和对象 》PPT课件.ppt(74页珍藏版)》请在三一办公上搜索。

1、作业参考程序,#include class Cheng int x,y;float a,b;public:void Input(int f)cinxy;void Input(float f)cinab;void Chengji(int f)coutx*yendl;,void Chengji(float f)couta*bendl;void main()Cheng ch;ch.Input(2);ch.Input(2.0f);ch.Chengji(1);ch.Chengji(1.0f);,C+程序设计,第2讲 类和对象,第2讲 类和对象,1.类的声明和对象的定义2.类的成员函数3.对象成员的引用4

2、.类的封装性和信息隐蔽5.类和对象的简单应用举例,1.类的声明和对象的定义,对象指客观世界中任一实际存在的事物,它既可以是有形的(比如一辆汽车、一台电脑、一个班级等),也可以是无形的(比如一项计划、一个发明等)。每个对象都具有属性和行为两个要素。属性:描述了对象的静态特征行为:描述了对象的动态特征(如功能、操作等),例如,对于班级对象,属性:所属专业、人数、男女生比例等行为:上课、下课、开会、选举班干部等活动,例如,对于摄像机对象,属性:生产厂家、型号、重量、颜色等行为:录像、放像、停止、快进、快退等功能,例如,对于一个数构成的对象,属性:值行为:各种算术运算、输出操作等,下面介绍在C+中是如

3、何利用面向对象方法编写软件的。我们结合例子来进行讲解。,例1、根据三角形的三条边长边长,计算并输出面积。(用OOP法),该系统包含一个三角形对象,设计该三角形对象,调用对象中的函数就是向该对象传送一个消息,要求该对象实施某一行为(功能)。,1.类的声明和对象的定义,流程:(1)定义一个三角形类,以描述各种三角形对象(2)定义一个具体的三角形对象(3)产生消息-输出边长(4)产生消息-计算面积,1.类的声明和对象的定义,#include#include class Triangle/定义三角形类 public:Triangle(float x,float y,float z)a=x;b=y;c=

4、z;float Area()/成员函数 float s=(a+b+c)/2;return sqrt(s*(s-a)*(s-b)*(s-c);void Printabc()/成员函数 coutabcendl;private:float a,b,c;/数据成员;,/接左边int main()Triangle triobj(3,4,5);triobj.Printabc();couttriobj.Area();return 0;,定义一个三角形对象,其边长为3、4、5,产生输出边长的消息,产生计算面积的消息,面向对象的程序设计方法,抽象性封装性继承性多态性,面向对象方法的四个特征,特征之一抽象性,所谓

5、抽象是将相关事物的共性进行归纳、集中的过程。利用抽象可把具有共同性质的事物划分为一类,并得出一个抽象的概念。,例如,把用汽油发动机驱动的车抽象为“汽车”,于是有了汽车的概念,它代表了车的一种类型;,把所有国籍为中国的人抽象为“中国人”,于是有了中国人的概念,它代表了人的一种类型;,把所有不带小数的数抽象为“整数”,于是有了整数的概念,它代表了数的一种类型即整数类型。实际上,C+中每种数据类型都是对一批具体的数的抽象。,由此不难想到,若把具有共同性质的对象进行抽象,也会得到新的数据类型,在C+中这种类型统称为类(class)。因此类是对象的抽象,对象是类的实例。,例如,一个三角形可作为一个对象,

6、10个不同尺寸的三角形是10个对象。如果这10个三角形对象有相同的属性和行为(只是边长不同),可以由它们抽象出三角形类。于是,这10个三角形就是属于同一类的对象。,特征之一抽象性,由于对象具有属性和行为两要素,因此,把对象进行抽象要做两方面的工作:数据抽象:给出对象共有的属性或状态代码抽象:给出对象共有的功能或行为特征 抽象的结果体现在相应的类定义中。,特征之二封装性,面向对象的封装有两层含义:,将对象的数据及对数据的操作方法封装在一起,作为一个相互依存、不可分离的整体。这样一来,各个对象之间相对独立,互不干扰,便于实现模块化。,尽可能隐蔽对象的内部细节,对外形成一个边界(或者说一道屏障),只

7、保留有限的对外接口来接收外部消息。这样一来,降低了操作对象的难度,增强信息的安全性。,特征之二封装性,如何实现封装呢?可借助C+中的类定义来实现。,class Clockprivate:int Hour,Minute,Second;public:void SetTime();void ShowTime();;,特定的边界,特定的边界,外部接口,内部信息,2.声明类类型,class 类名 public:公有成员 private:私有成员 protected:保护型成员;,下面来学习如何声明类。类也是用户自定义的数据类型,其声明格式如下:,class Clock public:void SetTi

8、me(int h,int m,int s)Hour=h;Min=m;Sec=s;void ShowTime()coutHour Min Sec;private:int Hour,Min,Sec;,class为声明类的关键字,类的声明以分号结束,类体中包括类的全体成员。既有数据,也有对它们操作的函数,体现了封装性。,数据成员,2.声明类类型,class 类名 public:公有成员 private:私有成员 protected:保护型成员;,访问权限规定了成员的访问属性。具体地说就是,私有成员:只能被本类中的成员函数引用,类外不能引用;公有成员:不仅能被本类中的成员函数引用,也能被类外的其他函数

9、引用。,class Clock public:void SetTime(int h,int m,int s)Hour=h;Min=m;Sec=s;void ShowTime()coutHour Min Sec;private:int Hour,Min,Sec;,数据成员,2.声明类类型,class A int len;/私有成员public:;,关于类的声明,再强调以下几点:,缺省访问权限为私有的,访问权限修饰符出现的次序任意,并且允许多次出现,class A private:int len;public:private:;,公有成员通常是一些成员函数,它们向用户提供接口功能,私有成员通常是一

10、些数据成员,它们用来描述对象的属性,class Clock public:void SetTime(int h,int m,int s)Hour=h;Min=m;Sec=s;void ShowTime()coutHour Min Sec;private:int Hour,Min,Sec;,在声明类时,不允许对数据成员初始化,class Clock public:void SetTime(int h,int m,int s)Hour=h;Min=m;Sec=s;void ShowTime()coutHour Min Sec;private:int Hour=15,Min=30,Sec=0;,4.

11、定义对象的方法,1.先声明类类型,然后再定义对象,class Student/声明类类型 public:void display()coutnum name sex;private:int num;char name20;char sex;Student s1,s2;/定义了两个Student类的对象,对象s1包括student类中定义的数据和函数,编译器会为该对象分配存储空间,以存放对象中的成员。,4.定义对象的方法,2.在声明类类型的同时定义对象,class Student/声明类类型 public:void display()coutnum name sex;private:int nu

12、m;char name20;char sex;s1,s2;/定义了两个Student类的对象,对象s1包括student类中定义的数据和函数,编译器会为该对象分配存储空间,以存放对象中的成员。,4.定义对象的方法,3.不出现类名,直接定义对象,class/无类名 public:void display()coutnum name sex;private:int num;char name20;char sex;s1,s2;/定义了两个无类名的对象,在C+中很少用此方法,也不提倡使用。,5.类的成员函数,类的成员函数是函数的一种,它的用法与前面学过的函数基本一致。成员函数的特别之处在于,它属于一

13、个类,且有访问权限。因此,在使用类函数时,要注意它的访问权限。例如,私有成员函数只能被本类中的其它成员函数调用,而不能被类外调用。但是,需要注意的是,成员函数可以访问本类中的任何成员。,通常将允许被外界调用的成员函数指定为public,它们是类的对外接口。对于仅供本类中其它函数调用的函数,其访问权限应指定为private。,5.1 在类外定义成员函数,在前面的例子中,成员函数是在类体中定义的。也可以在类体中只写出成员函数的声明,而在类的外面定义函数。,class Student/声明类类型 public:void display()/定义成员函数 coutnum name sex;privat

14、e:int num;char name20;char sex;,class Student/声明类类型 public:void display();/声明成员函数private:int num;char name20;char sex;void Student:display()/类外定义成员函数 coutnum name sex;,5.1 在类外定义成员函数,作用域运算符“:”功能是表明某成员属于一个类,其使用格式为::(),注意事项:在类体中直接定义函数时,不需要在函数名前面加上类名;但在类外定义成员函数时,必须在函数名前面加上类名,予以限定。如果在作用域运算符的前面没有类名,或者函数名前

15、面既无类名又无作用域运算符,如;display()或 display()则表示display函数不属于任何类,是一个普通函数。类函数必须先在类体中进行声明,然后在类外定义,即类体的位置应在函数定义之前。,5.2 inline(内联)成员函数,class Student public:void display()coutnum name sex;private:int num;string name;char sex;,注意:如果成员函数在类体外定义,系统并不把它默认为内置函数。,类的成员函数也可以指定为内置(内联)(inline)函数。1.类体中定义的成员函数自动成为内置函数,相当于inlin

16、e void display(),5.2 inline成员函数,2.把类体外定义的成员函数指定为内置函数,class Student/声明类类型 public:inline void display();/声明此成员函数为内置函数private:int num;char name20;char sex;/在类外定义成员函数为内置函数inline void Student:display()coutnum name sex;,5.2 inline成员函数,例2、定义一个描述日期的类,class Datepublic:/公有成员 void SetDate(int y,int m,int d)/给对

17、象设置日期值 year=y;month=m;day=d;int IsLeapYear()/判断是否为闰年 return(year%4=0,5.2 inline成员函数,例3、定义一个描述二维平面上点坐标的类,class Pointpublic:/公有成员 void SetPoint(int x,int y)/设置点的坐标 X=x;Y=y;int GetX()/返回点的X坐标 return X;int GetY()/返回点的X坐标 return Y;inline void Move(int xOffset,int yOffset);/改变点的坐标private:/私有成员 int X,Y;inl

18、ine void Move(int xOffset,int yOffset)/改变点的坐标X+=xOffset;Y+=yOffset;,内联函数引入的目的,解决程序中一些函数体代码不是很大,但又频繁地被调用的函数的函数调用的效率问题。,5.2 inline成员函数,解决方法,以目标代码的增加为代价来换取时间上的节省;即在编译时将函数体中的代码替换到程序中,增加目标程序代码量,进而增加空间开销,从而在时间开销上不像函数调用时那么大。,内联函数的定义方法,在函数定义的前面加上关键字inline,inline int add(int x,int y,int z)return x+y+z;,使用内联函

19、数的优点是缩短程序运行时间,提高程序执行效率。但是,它会增加程序可执行代码的长度。因此,内联函数适用于经常使用且规模很小的函数。,使用内联函数的注意事项,在内联函数内不允许用循环语句或条件语句、开关语句;因为它们有改变流程的语句,无法正确地替换。,内联函数的定义必须出现在该内联函数第一次被调用之前;内联函数定义在前,使用在后,以便编译器能够正确替换。,类结构中所有在类说明内部定义的函数都是内联函数;,内联函数无法递归调用;,内联函数具有与带参数的宏定义#define相同的作用和相似的机理,但内联函数具有宏定义的所有优点而没有其缺点,它消除了宏定义的不安全性。,内联函数和宏定义的区别,5.3 成

20、员函数的存储方式,假设用同一个类定义了8个对象,按理说,C+会为每个对象分配空间以存储对象的数据部分和函数代码。,由于这些函数代码完全相同,为节省空间起见,C+把函数代码只保存一份,供各个对象使用。,数据1,函数代码,对象1,数据2,函数代码,对象2,数据8,函数代码,对象8,因此,每个对象所占用的存储空间只是该对象的数据部分所占用空间,并不包括函数代码所占空间。,5.3 成员函数的存储方式,说明:不论成员函数在类内定义还是在类外定义,成员函数的代码段都用同一种方式存储。,5.4 对象成员的引用,对象类的对象是该类的某一特定实体,即类类型的变量。常用的对象声明形式:;例如:Student s1

21、,s2;class Time public:int Hour,Min,Sec;Time t1,t2,*pt,t10,5.4 对象成员的引用,与访问结构体的成员类似,访问对象中的成员也有3种方法:访问对象中成员的3种方法:通过对象名和成员运算符访问对象中的成员;通过指向对象的指针访问对象中的成员;通过对象的引用变量访问对象中的成员。,引用,变量引用操作符 首先定义变量a,并初始化为1,然后定义引用b,并初始化为a,即b是a的别名,因此a和b是同一个单元。注意:定义引用时一定要初始化,指明该引用变量是谁的别名。,例如:int sum,*p;int rsum是变量sum的引用,rcount是一个内部

22、临时变量的引用,该临时变量并不显式地表示出来。rp是*p的引用。,非法引用:int/数组不是单个对 象,不能定义数组引用,(2)特点:引用声明后,对引用的操作等同于对目标对象的操作。引用一旦初始化,它就维系在一个固定目标上,再也不分开。(3)引用的作用:是用来作函数的参数或函数的返回值。例如:int a=3;int,输出结果:10,10,示例:int a=3;int,8,m,定义引用并初始化,将引用赋值给变量,a=8,对引用的操作就是对被引用者的操作,5.4 对象成员的引用,对于一般对象数据成员:对象名.成员名成员函数:对象名.成员名(),例如:Student s1,s2;Time t1;t1

23、.Hour=12;/访问对象t1的公用数据成员Hours1.display();/调用对象s1的公用成员函数display();/错误,未指明是哪一个对象的display函数s1.num=99001;/错误,num是私有成员,不能被外界访问,成员运算符,8.4 对象成员的引用,对于引用对象与一般对象相同;数据成员:对象名.成员名成员函数:对象名.成员名(),例如:Student s1,/调用引用对象s2的公用成员函数,成员运算符,8.4 对象成员的引用,对于指向对象的指针数据成员:对象指针-成员名成员函数:对象指针-成员名(),例如:Student s1,*ps;Time t1,*pt=/调用

24、ps指向的对象s1的公用成员函数,指向运算符,在pt指向t1的前提下,p-hour(*p).hourt1.hour三者等价。,8.5 类和对象的简单应用举例,#include using namespace std;class Time public:int hour,minute,sec;int main()Time t1;cint1.hour;cint1.minute;cint1.sec;coutt1.hour:t1.minute:t1.secendl;return 0;,/定义Time类,/数据成员为公用的,/定义Time类的对象t1,/为t1的成员输入数据,/其中通过对象名引用其数据成

25、员,例4、最简单的例子(引用一个对象)(P254例8.1),在引用成员时,不要忘记对象名,如果删去这3个输入语句,则输出结果是不可预知的,8.5 类和对象的简单应用举例,在本程序中,由于对每个对象都一一写出有关操作,因此当对象个数较多时,程序会冗长。为了解决此问题,在程序b中用函数来进行输入输出。,#include using namespace std;class Time/定义类Time public:int hour;int minute;int sec;int main()Time t1;/定义对象t1 cint1.hour;cint1.minute;cint1.sec;coutt1.

26、hour:t1.minute:t1.secendl;,Time t2;/定义对象t2 cint2.hour;cint2.minute;cint2.sec;coutt2.hour:t2.minute:t2.secendl;return 0;,例5a、引用多个对象的成员(P255例8.2程序a),8.5 类和对象的简单应用举例,例5b、引用多个对象的成员(P256例8.2程序b),class Time/定义类Time public:int hour,minute,sec;void set_time(Time,由于形参为引用变量,在调用时,t成为了t1的别名,执行set_time函数相当于执行以下语

27、句:cint1.hourt1.minutet1.sec;,/定义对象t1,/调用函数,为对象t1的成员输入数据,/调用函数,输出对象t1的数据,/定义对象t2,8.6 类和对象的简单应用举例,例5c、引用多个对象的成员(P257例8.2程序c),程序c对上面的程序进行修改,使得数据成员的值不再由键盘输入,而是在调用函数时由实参提供,并在函数中使用了默认参数。,例5d、用含有成员函数的类来改写程序(P258例8.3),例5d、用含有成员函数的类改写程序(P258例8.3),#include using namespace std;class Timepublic:void set_time();

28、void show_time();private:int hour,minute,sec;int main()Time t1;t1.set_time();t1.show_time();Time t2;t2.set_time();t2.show_time();return 0;,void Time:set_time()cinhourminutesec;void Time:show_time()couthour:minute:sec;,有2个公有成员函数,声明成员函数,有3个私有的数据成员,在类外定义成员函数注意:成员函数可直接引用数据成员,定义Time类对象t1,调用对象t1的成员函数set_t

29、ime,为t1的数据成员输入数据,调用对象t1的成员函数show_time,输出t1的数据成员值,调用对象t2的成员函数set_time,为t2的数据成员输入数据,调用对象t2的成员函数show_time,输出t2的数据成员值,定义Time类对象t2,几点注意:,1.在main中调用成员函数时,应指定 对象名,2.当调用t1.set_time()时,引用的是t1的数据成员,3.在类外定义成员函数时,应指定作用域(类名),8.6 类和对象的简单应用举例,例6、找出一个整型数组中的最大元素(P259例8.4),这里使用类来处理。,#include using namespace std;class

30、 Array_max public:void set_value();void max_value();void show_value();private:int array10;int max;void Array_max:set_value()for(int i=0;iarrayi;,void Array_max:max_value()max=array0;for(int i=1;imax)max=arrayi;void Array_max:show_value()coutmax=max;int main()Array_max arrmax;arrmax.set_value();arrma

31、x.max_value();arrmax.show_value();return 0;,可以看出,主函数十分简单,只需调用有关对象的成员函数,以完成相应的操作。在面向对象的程序设计中,最关键的工作是类的设计,所有的数据和对数据的操作都体现在类中。,例6、找出一个整型数组中的元素的最大值,#include using namespace std;class Array_max public:void set_value();void max_value();void show_value();private:int array10;int max;void Array_maxset_value(

32、)int i;for(i=0;iarrayi;void Array_maxmax_value()int i;max=array0;for(i=1;imax)max=arrayi;,void Array_maxshow_value()coutmax=max;int main()Array_max arrmax;arrmax.set_value();arrmax.max_value();arrmax.show_value();return 0;,/声明类,/以下3行为成员函数原型声明,/对数组元素设置值,/找出数组中的最大元素,/输出最大值,/整型数组,/成员函数定义,向数组元素输入数值,/成员函

33、数定义,找数组元素中的最大值,/定义对象arrmax,/调用arrmax的set_value函数,向数组元素输入数值,/调用arrmax的max_value函数,找出数组元素中的最大值,/调用arrmax的show_value函数,输出数组元素中的最大值,/成员函数定义,输出最大值,8.6 类和对象的简单应用举例,例7、使用类设计模仿数字式时钟的程序,(1)函数main()能使用对象clockA和clockB,但是不能访问对象内部私有的数据成员和成员函数。(2)只要定义了类,就可以建立多个对象,并且这些对象之间不会相互干扰。,8.6 类的封装性和信息隐蔽,公用接口与私有实现的分离 class

34、Student private:int num;string name;char sex;public:void display()coutnum:numendl;coutname:nameendl;coutsex:sexendl;Student stud;,被操作的数据是私有的,公用接口,int age;,(1)如果想修改或扩充类的功能,只需修改本类中有关的数据成员和与它有关的成员函数,程序中类外的部分可以不必修改。,coutage:ageendl;,注意:虽然类中的数据成员改变了,成员函数display的定义改变了,但是类的对外接口没有改变,外界仍然通过公用的display函数访问类中的数

35、据。程序中的其他任何部分均无需修改。,当接口与实现(对数据的操作)分离时,只要类的接口没有改变,对私有实现的修改不会影响程序的其他部分。,(2)如果在编译时发现类中的数据读写有错,不必检查整个程序,只需检查本类中访问这些数据的少数成员函数。,8.6 类的封装性和信息隐蔽,类声明和成员函数定义的分离如果一个类被多个程序使用,一般做法是将类的声明(其中包含成员函数的声明)放在指定的头文件中,用户如果想用该类,只要把有关的头文件包含进来即可,不必在程序中重复书写类的声明,减少工作量,提高编程的效率。/student.h(这是头文件,在此文件中进行类的声明)class Student public:v

36、oid display();private:int num;char name20;char sex;,/类声明,/公用成员函数原型声明,/student.cpp(在此文件中进行函数的定义)#include#include student.h void Studentdisplay()coutnum:numendl;coutname:nameendl;coutsex:sexendl;,/不要漏写此行,否则编译通不过,/在类外定义display类函数,8.6 类的封装性和信息隐蔽,为了组成一个完整的源程序,还应当有包括主函数的源文件:/main.cpp 主函数模块#include#include

37、 student.h/将类声明头文件包含进来int main()Student stud;/定义对象 stud.display();/执行stud对象的display函数 return 0;,这是一个包括3个文件的程序,组成两个文件模块:一个是主模块main.cpp,一个是student.cpp。在主模块中又包含头文件student.h。在预编译时会将头文件student.h中的内容取代#include student.h行。,8.6 类的封装性和信息隐蔽,注意:由于将头文件student.h放在用户当前目录中,因此在文件名两侧用双撇号包起来“student.h”)而不用尖括号(),C+编译系

38、统对两个文件main.cpp和student.cpp分别进行编译,得到两个目标文件main.obj和tudent.obj,得到两个目标文件main.obj和tudent.obj,C+编译系统对两个文件main.cpp和student.cpp分别进行编译,8.6 类的封装性和信息隐蔽,在实际工作中,并不是将一个类声明做成一个头文件,而是将若干个常用的功能相近的类声明集中在一起,形成类库。类库有两种:一种是C+编译系统提供的标准类库;一种是用户根据自己的需要做成的用户类库,提供给自己和自己授权的人使用,这称为自定义类库。类库包括两个组成部分:(1)类声明头文件;(2)已经过编译的成员函数的定义,它

39、是目标文件。用户只需把类库装入到自己的计算机系统中(一般装到C+编译系统所在的子目录下),并在程序中用#include命令行将有关的类声明的头文件包含到程序中,就可以使用这些类和其中的成员函数,顺利地运行程序。,补充内容(自学)?:全局作用域限定符“:”,#include using namespace std;int X=1;void main()int X=2;cout X;,此时输出的X值是为“1”还是“2”?输出:2因为系统采用同名覆盖原则。如何输出全局变量X的值?,相同吗?,C+中的全局作用域限定符,例题:全局作用域#include using namespace std;int X

40、=1;void main()int X=2;cout local X=Xendl;/未限定时的符号名为局部符号名 cout“global X=”:Xendl;/采用“:”限定时的符号名为全局符号名,全局作用域限定符“:”的作用:能使程序员访问到在某外部块中所定义的全局变量,以免被同名的局部变量所覆盖。访问规则:(1)有“:”限定的同名符号是全局变量。(2)无“:”限定的同名符号是局部变量。,全局作用域限定符的编程规则,:CreateWindow(参数);CreateWindow(参数);,全局作用域限定符“:”不仅可以限定变量,也可以用来限定函数。以Microsoft 公司的SDK API函数

41、与VC+中的MFC类库中的成员函数同名为例说明,它为MFC CWnd类中的成员函数!,它为Windows API全局函数,面向对象的程序设计方法,在C+中,每个对象都是由数据和函数(即操作代码)这两部分组成。,数据用来描述对象的“属性”,函数用来对数据进行操作,实现对象的“行为”,对于三角形对象,它的3个边长就是它的属性 计算三角形面积和输出有关数据就是它的行为(方法),C+程序设计,第8章 类和对象课后作业与上机练习题目,本章作业,1.分析下列程序的输出结果(1)#include using namespace std;class Location public:void init(int

42、i=0,int j=0);void setA(int n1)A=n1;void setB(int n2)B=n2;int getA()return A;int getB()return B;private:int A,B;,void Location:init(int i,int j)A=i;B=j;int main()Location X,Y;X.init(4);X.setA(10);coutX.getA(),X.getB()endl;Y.init(7,9);Y.setB(8);coutY.getA(),Y.getB()endl;return 0;,本章作业,(2)下面的程序定义了一个Clo

43、ck类,记录当前时间(小时和分钟),并可以通过两个函数取到这两个私有成员。主函数定义一个Clock对象,输出他的当前时间,然后将时间增加一分钟,再输出增加后的时间。写出程序运行结果。#include using namespace std;class clock int hour;int minute;public:clock(void);void inc_time(void);int present_hour(void)return hour;int present_minute(void)return minute;void print_time();clock:clock(void)ho

44、ur=6;minute=59;,本章作业,void clock:print_time(void)cout59)minute-=60;hour+;,int main()clock myclock;myclock.print_time();myclock.inc_time();myclock.print_time();myclock.inc_time();myclock.print_time();return 0;,本章作业,2.设计Test类,使如下程序的输出结果为:测试结果:68-55=13int main()Test a;a.init(68,55);a.print();return 0;,本

45、章作业,3.改错题(1)请用横线标出下面的程序错误语句所在行并说明出错原因。#include using namespace std;class A private:int a;public:void seta(int x)a=x;void showA()couta=aendl;,int main()A obj;obj.a=3;obj.seta(53);obj.showA();return 0;,本章作业,(2)请用横线标出下面的程序段错误语句所在行并说明出错原因。class Location int X,Y=20;private:int length,height;public:float

46、radius;void init(int initX,int initY);int GetX();int GetY();,本章作业,4.填空题(1)在下面程序的横线处填上适当字句,使该程序执行结果为8。#include class Myclass int X;public:(1)/为X置值(2)/取X值;int main()Myclass test;test.init(8);couttest.Getnum()endl;return 0;,本章作业,(2)在下面的类定义中,私有成员包括。classLocationintX,Y;protected:intW,Z;intSet(W,Z);privat

47、e:intlength,height;public:voidinit(intx,inty);intGetX();intGetY();,本章作业,3.课后习题1.P261-12.P261-2,33.P261-4,5,上机练习题目,实验目的通过过上机练习学会类和对象的定义方法。了解下列各成员函数的特点:(1)内联(2)重载(3)设置默认参数,上机练习题目,(一)教材中例题程序的调试1.例8.12.例8.2(1)程序a(2)程序b(3)程序c3.例8.38.44.p258例题,上机练习题目,(二)课件中典型例题程序的调试1.计算两数之和。(两数之和2.cpp)2.例1.日期类的定义和应用(例1日期类.cpp.cpp)3.例8.3(例8_3.cpp)4.例4.使用类设计模拟数字式时钟的程序(例4模拟数字时钟.cpp),上机练习题目,(四)课后习题1.p216第23题2.p127第46题,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号