《c程序设计基础》第七章-类和对象.pptx
C++程序设计基础第7章类与对象北京邮电大学信通院方莉
第7章类与对象2类是实现C++面向对象程序设计的基础。类把数据和函数封装在一起,是C++封装的基本单元。面向对象程序设计的基本特点有:抽象、封装、继承和多态。本章主要内容类的使用、定义和实现面向对象分析和面向对象设计
7.1类和对象的定义7.2对象的使用7.3构造函数7.4析构函数7.5类的静态成员7.6类成员的保护和使用7.7运算符重载7.8类的组合7.9面向对象分析和设计第7章类与对象
7.1类和对象的定义4一个类表示现实生活中的一类事物,比如“学生”,事物有相应的特征或属性,它们就是类的数据成员;事物可能有行为动作,也可能被某些行为动作所操作,这些都用函数来实现,这些函数和类有着不可分割的关系,是构成类的函数成员,或者叫成员函数。在C++中,类实际上相当于一种用户自定义的数据类型。
在定义了类类型后,就可以定义该类型的变量,这个变量就称为类的对象(或实例)。对象是一类事物中的一个具体的个体。从程序设计的角度来看,对象就相当于变量。类和对象的定义
7.1类和对象的定义60102举例:classStudent//类的定义{private:intid;char[20]name;intage;floatscore;public:voidgetscore()voidprintstu()};
7.1.1使用类对象7如果已经知道某个类的功能和接口函数,就可以使用它了。先定义类对象,通过对象调用接口函数实现一定的功能。classStudentstu01;//class也可以省略不写?Studentstu01;stu01.getscore();stu01.printstu();这个过程的本质是:根据对象所需要完成的任务,向对象发送消息。对象收到消息后,调用接口中的相应的函数,完成它的功能。对象只需要知道“做什么”,具体工作由成员函数来完成。
7.1.2类的声明8classStudent//类的定义{private: intid; charname[20]; floatscore;public: voidGetData(); voidPrintData();};类的声明:具体说明类的组成class类名{private://数据成员protected://保护成员public://成员函数};一般写在类的.h文件中,也可以写在类的.cpp文件之首。
7.1.2类的声明9类实际上是一种用户自定义的数据类型。比较:structstudent{ intid; char[20]name; floatscore;};classStudent{private: intid; charname[20]; floatscore;public: voidGetData(); voidPrintData();};同是自定义的类型。在无显式声明时,结构体的成员是公有的,类的成员是私有的。
例:要声明一个时钟类分析:任何一个时钟应该有时、分、秒的值,这就是时钟的属性特征;时钟的操作应该有设置时间、显示时间等。画出时钟类的标记图如下:
7.1.2类的声明11举例:classClock{public: voidSetTime(intnewH,intnewM,intnewS); voidShowTime();private: intHour; intMinute; intSecond;};
7.1.2类的声明12举例:classPoint{public:voidSetXY(intx,inty);voidGetXY(intx,inty);private:intm_x;intm_y;};
7.1.2类的声明13关键字public、protected、private说明类成员的访问控制属性。私有(private)成员只允许本类的成员函数来访问;公有(public)成员是类对外的接口,在类声明和类(函数)实现之后,类的对象可以访问公有成员。保护型(protected)成员,对于类外其它函数,其可访问性和私有成员的性质相似。
7.1.2类的声明关于访问控制属性,注意:14在类声明中,三种访问控制属性,可以按任意次序出现,也可以不出现。public等关键字也可以多次出现,但是一个成员只能具有一种访问控制属性。如果不写访问控制属性关键字,默认的是private。在书写时通常习惯将公有类型放在最前面,这样便于阅读,因为它们是外部访问时所要了解的。一般情况下,一个类的数据成员应该声明为私有