【教学课件】第4章类与对象.ppt
《【教学课件】第4章类与对象.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第4章类与对象.ppt(65页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 第第4章章 类与对象类与对象1/9/20231 本章主要内容:本章主要内容:类的定义与使用类的定义与使用类的数据成员和成员函数类的数据成员和成员函数类成员的访问控制方法类成员的访问控制方法类的实现和对象的创建类的实现和对象的创建访问类成员的方法访问类成员的方法构造函数与析构函数构造函数与析构函数复制构造函数及深复制与浅复制复制构造函数及深复制与浅复制类作用域类作用域静态成员静态成员类的友元类的友元常对象常对象1/9/202324.1 类类 类类是是对对具具有有相相同同属属性性(数数据据)和和行行为为(操操作作)的的一一组对象的抽象。组对象的抽象。面面向向对对象象程程序序设设计计的的核核心心任
2、任务务是是类类的的确确定定和和对对象象的的创创建建,而而不不是是将将各各个个具具体体的的对对象象逐逐一一进进行描述。行描述。忽忽略略各各具具体体对对象象的的非非本本质质特特征征,抽抽象象出出本本质质特特征征与与共共性性,然然后后形形成成类类的的概概念念,对对象象是是类类的的实例。实例。从语法分析,类也是一种数据类型,即用户自从语法分析,类也是一种数据类型,即用户自定义的数据类型,而一个一个具体的对象可定义的数据类型,而一个一个具体的对象可以视为属于这一数据类型的一个变量。以视为属于这一数据类型的一个变量。1/9/202331.类的定义类的定义 类是对具有相同属性和行为的一组对象类是对具有相同属
3、性和行为的一组对象的抽象与统一描述;的抽象与统一描述;类的定义包括行为和属性两个部分;类的定义包括行为和属性两个部分;属性以数据表示,行为通过函数实现。属性以数据表示,行为通过函数实现。1/9/20234C+类定义的格式:类定义的格式:class类名public:公有数据成员和成员函数;protected:保护数据成员和成员函数;private:私有数据成员和成员函数;各成员函数的实现;1/9/20235class Student /定义学生类定义学生类Studentpublic:/声明类成员声明类成员 void Getinfo(char*pname,char*pid,char Sex,int
4、 a,double s);void modify(float s);void display();private:char*name;char*id;char sex;int age;double score;/类定义以分号结束类定义以分号结束 类定义举例类定义举例1/9/20236类定义和使用时应注意:类定义和使用时应注意:类的定义中不能对数据成员进行初始化。公有部分是类对外的接口,一般应先说明公有部分类的任何成员都必须指定访问属性,一般将数据成员定义为私有成员或保护成员,将成员函数定义为公有成员。类中的数据成员可以是C+语法规定的任意数据类型,但不能用存储类型auto、register或e
5、xtern进行修饰。1/9/20237注意事项注意事项(续续)类的成员可以是其他类的对象,但不能以类自身的对象作为本类的成员,而类自身的指针和引用可以作为类的成员。类定义必须以分号“;”结束。在C语言中,结构体只有数据成员,而C+的结构体不仅有数据成员,而且有成员函数及访问权限控制。类与结构体的区别:没有明确指定类成员的访问权限时,C+结构体的成员是公有的,而类的成员是私有的。1/9/202382 访问控制访问控制 类的访问属性有:PublicProtectedPrivate各种访问方式的功能如下表1/9/20239类成员访问控制表类成员访问控制表 访问控制含义属性public公有成员类的外部
6、接口protected保护成员仅允许本类成员函数及派生类成员函数访问private私有成员仅允许本类成员函数访问1/9/202310类的成员函数是实现对封装的数据进行操作的惟一途径,是现实类的行为属性的成员。一般将成员函数声明为函数原型,在类外具体实现成员函数。如果成员函数已经在类中定义,则无须在类外实现。类中定义的成员函数自动成为内联函数。4.2 成员函数成员函数 1/9/2023111.成员函数的定义成员函数的定义 返回值类型类名:成员函数名(参数表)函数体1/9/2023122.内联成员函数内联成员函数 在类中实现的成员函数自动成为内联函数;内联成员函数可以减少函数调用开销,提高程序的执
7、行效率;内联成员函数增加了程序代码的长度;一般将调用频繁且代码少的成员函数定义为内联成员函数;若内联成员函数在类外实现,需要以inline限定。1/9/2023134.3 对象对象 类描述了一类问题的共共同同属属性性和和行为行为,对象是类的实例或实体。类与对象的关系,如同C+基本数数据类型和该类型的变量据类型和该类型的变量之间的关系。1/9/2023141.对象的定义对象的定义 对象的定义格式如下:类名类名对象名对象名1,对象名,对象名2,对象名,对象名n;1/9/202315必必须须在定义了类之后,才可以定义类的对象;类定义仅提供该类的类型定义。仅仅仅仅定定义义了了类类,系系统统并并不不会会
8、分分配配存存储储空空间间,只只有有定定义义了了对对象象后后,编编译译系系统统才才会会在在内内存中预留空间。存中预留空间。定义对象应注意定义对象应注意1/9/202316声明了类及其对象以后,就可以访问对象的公有成员(包括数据成员和成员函数)。对象成员的访问包括:圆点访问形式圆点访问形式指针访问形式指针访问形式2.类成员的访问类成员的访问 1/9/202317(1)圆点访问形式圆点访问形式 对象名对象名.公有成员公有成员1/9/202318(2)指针访问形式指针访问形式 形式一:形式一:对象指针变量名对象指针变量名-公有成员公有成员形式二:形式二:(*对象指针变量名对象指针变量名).公有成员公有
9、成员1/9/202319New 运算符介绍运算符介绍l本章例4-7程序中出现了New运算符;lNew运算符用于动态内存分配,在后续章节中有专门介绍;lNew运算符使用形式:l指针所指向的数据类型应与new运算符后的数据类型相同,若申请成功则返回分配单元的首地址给指针变量,否则返回空指针值(即0)给指针变量。例如:(1)指针变量指针变量=new数据类型;数据类型;(2)指针变量指针变量=new数据类型数据类型(初始值初始值);(3)指针变量指针变量=new数据类型数据类型元素个数元素个数;1/9/202320New 运算符举例运算符举例int*p1;double*p2;p1=newint(12)
10、;p2=newdouble100;l分别表示动态分配了用于存放整型数据的内存空间,将初值12写入该内存空间,并将首地址值返回指针p1;l动态分配了具有100个双精度实型数组元素的数组,同时将各存储区的首地址指针返回给指针变量p2;1/9/202321对象是类的实例,在创建了对象以后,编译系统将给对象分配存储空间。不同对象的区别主要表现在两个方面:对象名:即对象的标识符(外在区别);对象属性:即数据成员的值,(内在区别)对象在定义的时需要初始化。对象生命期结束时要进行清理工作。C+中对象的创建与初始化、对象生命期中对象的创建与初始化、对象生命期结束时的清理工作,分别由构造函数和析构函结束时的清理
11、工作,分别由构造函数和析构函数完成。数完成。4.4 构造函数与析构函数构造函数与析构函数 1/9/202322构造函数的功能是在定义对象时由编译系统自动调用来创建对象并初始化对象。构造函数的函数名与类名相同。其定义格式如下:1.构造函数构造函数 类名:类名类名:类名(参数表参数表)函数语句函数语句1/9/202323构造函数的函数名与类名相同;构造函数可以有任意类型的参数,但没有函数返回值类型;构造函数一般被定义为公有成员;构造函数在创建对象时由编译系统自动调用;构造函数只能一次性地影响对象的数据成员初值。构造函数的特殊性质:1/9/202324如果类中没有定义构造函数,系统将自动生成一个默认
12、形式的构造函数,用于创建对象,默认构造函数形式默认构造函数形式:默认构造函数默认构造函数类名:类名类名:类名()1/9/202325使用构造函数时应注意:构造函数是特殊的成员函数,函数体可写在类中,也可写在类外;若构造函数没有参数,则称为无参构造函数;若构造函数带有参数,则称为带参数构造函数;构造函数可以重载;每个类都必须有一个构造函数。如果程序没有显式定义构造函数,编译系统将自动生成一个默认形式的构造函数。1/9/2023262.析构函数析构函数 析构函数不能有参数,也不能重载。定义格式如下:类名:类名:类名类名()函数语句函数语句1/9/202327析构函数的自动调用析构函数的自动调用除对
13、象生存期结束时自动调用外,在以下两种情况下析构函数会被调用:如如果果一一个个对对象象被被定定义义在在一一个个函函数数体体内内,则当这个函数结束时。则当这个函数结束时。若一个对象是使用若一个对象是使用new运算符被动态创建运算符被动态创建的,在使用的,在使用delete运算符释放它时。运算符释放它时。1/9/202328默认析构函数默认析构函数 若没有显式定义析构函数,则系统自动生成一个默认形式的析构函数。系统自动生成的默认构造函数形式如下:系统自动生成的默认构造函数形式如下:类名:类名:类名类名()1/9/2023293.复制构造函数复制构造函数 复制构造函数也是一种特殊的成员函数;功能是用一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 对象
限制150内