欢迎来到天天文库
浏览记录
ID:58687291
大小:1.21 MB
页数:48页
时间:2020-10-04
《类和对象ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第8章类和对象第8章类和对象8.1类和对象8.2类对象8.3构造函数和析构函数8.4类的初始化8.5复杂的对象表示8.6堆与拷贝构造函数8.7this指针8.8引用8.9常类型类构成了实现C++面向对象程序设计的基础,在C++语言面向对象程序设计中占据着核心地位。它把数据和作用在这些数据上的操作组合在一起,是封装的基本单元。对象是类的实例,类定义了属于该类的所有对象的共同特性。8.1类和对象从一般意义上讲,对象(Object)是现实世界中的客观事物。类是把具有相同属性的事物划分为一类,从而得出的抽象概念。类是一组性质相同的对象的程序描述,它由概括了一组对象共同性质的数据和函数组成。面向
2、对象的程序设计中最基本的概念是对象,一般意义上的对象指的是一个实体的实例,在这个实体中包括了特定的数据和对这些数据进行操作的函数。对象的核心概念就是通常所说的“封装性”(encapsulation)、“继承性”(inheritance)和“多态性”(polymorphism)。8.1.1类的定义类是一种用户自定义的数据类型,它的一般定义格式如下:class<类名>{private:<私有数据成员和成员函数>;protected:<保护数据成员和成员函数>;public:<公有数据成员和成员函数>;};<各个成员函数的实现>;其中,class是定义类的关键字。<类名>是一个标识符,用于惟
3、一标识一个类。一对大括号内是类的说明部分,说明该类的所有成员。类的成员包括数据成员和成员函数两部分。类的成员从访问权限上分有以下三类:公有的(public)、私有的(private)和保护的(protected),其中默认为private权限。说明为公有的成员可以被程序中的任何代码访问;说明为私有的成员只能被类本身的成员函数及友元类的成员函数访问,其他类的成员函数,包括其派生类的成员函数都不能访问它们;说明为保护的成员与私有成员类似,只是除了类本身的成员函数和说明为友元类的成员函数可以访问保护成员外,该类的派生类的成员也可以访问。例8-1:includeclas
4、sSample{intx,y;public:Sample(){x=y=0;}Sample(inta,intb){x=a;y=b;}voiddisp(){cout<<”x=”<5、示例。classLocation{public:voidinit(intx,inty){X=x;Y=y;}private:intX,Y;public:intGetX(){returnX;}intGetY(){returnX;}};类的成员函数也可以另外定义,而在类定义时给出函数头。例8-2的成员函数可说明如下:voidLocation::init(intx,inty){X=x;Y=y;}//将x,y的值分别赋给X,YintLocation::GetX(){returnX;}intLocation::GetY(){returnY;}一个类的说明可分为定义性说明和引用性说明两种,引用性说明6、仅说明类名。例如:classLocation;引用性说明不能用于说明类的变量,但可说明指针,例如:classmyClass{inti;myClassmember;//错myClass*pointer;//对};注意:在类定义体外定义成员函数时,需在函数名前加上类域标记,因为类的成员变量和成员函数属于所在的类域,在域内使用时,可直接使用成员名字,而在域外使用时,需在成员名外加上类对象的名称。8.1.3类和结构结构是类的一种特例,在结构中也可以定义成员函数。定义结构时只要把关键字class改为struct即可。classLocation{private:intX,Y;public:void7、init(intx,inty){X=x;Y=y;}intGetX(){ returnX; }intGetY(){ returnY; }};结构和类的唯一区别是:在未指定访问权限时,结构中的成员被默认为公有的而类中的成员被默认为私有的。在所有其他方面,类和结构等价。例如:structS{intX;//公有的...};classC{intX;//私有的...};尽管类和结构是等价的,但一般在描述数据时使用结构,在描述数据及对数据的操
5、示例。classLocation{public:voidinit(intx,inty){X=x;Y=y;}private:intX,Y;public:intGetX(){returnX;}intGetY(){returnX;}};类的成员函数也可以另外定义,而在类定义时给出函数头。例8-2的成员函数可说明如下:voidLocation::init(intx,inty){X=x;Y=y;}//将x,y的值分别赋给X,YintLocation::GetX(){returnX;}intLocation::GetY(){returnY;}一个类的说明可分为定义性说明和引用性说明两种,引用性说明
6、仅说明类名。例如:classLocation;引用性说明不能用于说明类的变量,但可说明指针,例如:classmyClass{inti;myClassmember;//错myClass*pointer;//对};注意:在类定义体外定义成员函数时,需在函数名前加上类域标记,因为类的成员变量和成员函数属于所在的类域,在域内使用时,可直接使用成员名字,而在域外使用时,需在成员名外加上类对象的名称。8.1.3类和结构结构是类的一种特例,在结构中也可以定义成员函数。定义结构时只要把关键字class改为struct即可。classLocation{private:intX,Y;public:void
7、init(intx,inty){X=x;Y=y;}intGetX(){ returnX; }intGetY(){ returnY; }};结构和类的唯一区别是:在未指定访问权限时,结构中的成员被默认为公有的而类中的成员被默认为私有的。在所有其他方面,类和结构等价。例如:structS{intX;//公有的...};classC{intX;//私有的...};尽管类和结构是等价的,但一般在描述数据时使用结构,在描述数据及对数据的操
此文档下载收益归作者所有