- 1、本文档共22页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十四章VisualC面向对象编程
对象 面向对象技术不同于传统的结构化技术,主要体现在其使用对象来进行程序开发。对象(Object),是指包含数据及其操作的实体,也即在传统的数据结构中加入一些过程,使用这些过程来赋予对象对数据的操作功能,这些过程就是后面要提到的成员函数,如图14-2所示。 在现实世界中,对象指的就是具体的事物,例如:飞机、汽车、人等。每个对象都含有自己的内部状态和行为,例如人具有名字、身高、体重等内部状态,也具有走路、吃饭等行为。在面向对象的概念中,将对象的内部状态称为属性,将其行为称为方法或事件。对象之间的联系通过消息来传递,消息机制是对象间相互联系和相互作用的方式。 说明:在Visual C++中,整个应用程序可以是一个对象,对象也是应用程序的一个部分,例如控件和图表等 封装 封装是面向对象编程思想中的重要特性之一,其作用在于定义对象和操作,只提供抽象的接口,并隐藏其具体实现。封装的结果是类,也即把有相似属性(成员变量)、操作(成员函数)的事物绑在一起处理(即一个类)。 例如,为了方便管理公司职工,可以给职工写一个类,该类的属性可以有年龄、性别、姓名、入职日期等,操作可以有开除、调动等,这就实现了封装,如图14-8所示。 例如,将时钟的数据和功能封装起来,构成一个时钟类。按C++的语法,时钟类的声明如下: class Clock { public: //公共成员,用作外部接口 void SetTime(int NewH,int NewM,int NewS); void ShowTime(); private: //私有成员,外部无法访问 int Hour; int Minute; int Second; } 继承 继承是面向对象程序设计的又一个重要概念,其可以将现实生活的概念对应到面向对象的程序逻辑中。例如,车是一个类,具有一些公共的性质;而汽车也是一类,但其属于车,所以汽车是继承于车的,而奔驰汽车又继承与汽车,如图14-9所示。 一个类(派生类、子类)是从另一个类(基类、父类)派生而来,派生类继承了基类的所有特性。在C++中,一个派生类可以从一个基类派生,也可以从多个基类派生。从一个基类派生的继承称为单继承;从多个基类派生的继承称为多继承。一般来说,继承有3种方式。 公有继承:也称为public继承类型。 保护继承:也称为protected继承类型。 私有继承:也称为private继承类型。 继承类型与成员类型的继承关系 根据继承的不同类型,基类的成员在派生类中的访问控制受继承类型的限制,具体限制如表14-2所示。 多态 多态性也是面向对象程序设计的重要特征之一,多态性是指发出同样的消息被不同类型的对象接收时导致完全不同的行为。例如,动物都有吃的行为,而羊和狼吃的方式和内容都不一样,如图14-10所示。 类的定义 C++语言中类的定义语法为: class 类名称 { public|protect|private: 成员数据类型 成员名称; 成员函数 }; 下面是一个简单的类(class)的定义,该类没有定义函数, class student { public: int number; char name[10]; int age; }; 类的继承 前面的面向对象基础理论中提到了,类是可以继承(Inherit)的,也即基于现有的类再创建新类。此处假定类B继承了类A,那么,则称A为基类(Base Class,也叫父类),B为派生类(Derived Class,也叫子类)。派生类不但拥有自己新的成员变量和成员函数,还可以拥有基类的成员变量和成员函数。一个派生类可以只继承一个类,也可以继承多个类,这种情况则称为多重继承。 单一继承是最普通的一种继承形式,在该继承形式中,派生类仅有一个基类,继承的派生类定义方法如下: class 派生类名:访问权限 基类名称 { ..... }; 例如,要实现类B与类A的继承关系,在定义类B之前必须已定义了类A,并用如下的格式定义类B。 class B:public或private A { .... }; 多重继承是指一个类可以从多个基类中派生出来。在派生类由多个基类派生出来的多重继承模式中,基类是用基类表语法成份来说明的,多重继承的语法与单一继承很类似,只需要在声明继承的多个类之间加上逗号来分隔,如下定义形式: class 派生类名:访问权限 基类名称,访问权限 基类名称,访问权限 基类名称 { …… }; 例如B类是由类C和类D派生的,声明如下: class B:public C,public D { …… } 虚函数与多态性 在面向对象的程序设计中,经常用到类的继承,目的在于保留基类的某种特性,但并不是所有基类的特性都适合于派生类
文档评论(0)