电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > PPT文档下载
分享到微信 分享到微博 分享到QQ空间

Visual C++基础教程 教学课件 ppt 作者 郭文平 第1-6章 第3章

  • 资源ID:89352240       资源大小:448KB        全文页数:149页
  • 资源格式: PPT        下载积分:10金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要10金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

Visual C++基础教程 教学课件 ppt 作者 郭文平 第1-6章 第3章

第3章 类和对象,3.1 面向对象程序设计概述 3.2 类与对象 3.3 构造函数和析构函数 3.4 对象数组和对象指针 3.5 静态成员 3.6 友元 3.7 对象成员 习题,3.1 面向对象程序设计概述 3.1.1 面向对象程序设计的产生 在面向对象程序设计出现之前,程序设计人员广泛使用的是面向过程的程序设计方法。20世纪60年代产生的结构化程序设计思想,为使用面向过程的方法解决复杂问题提供了有力手段,并且成为20世纪70年代至80年代最主要、最通用的程序设计方法。 结构化程序设计方法采用自顶向下、逐步求精的方式对复杂问题进行逐步分解,将一个复杂任务分解成若干个功能模块,然后根据功能模块设计用于保存数据的数据结构,编写过程或函数对这些数据进行操作。完成各功能模块的过程在功能上相对独立,而在数据的处理上又相互联系。,结构化程序设计是一种面向过程的程序设计方法,它的核心是过程,程序通常是按照过程来组织的,即利用代码对数据进行处理。在面向过程的程序设计中,数据与操作数据的过程是分离的。当数据结构改变时,所有相关的处理过程都要进行相应的修改,因此代码的可重用性差。另外,面向过程程序设计将系统分解为若干功能模块,系统是实现模块功能的过程的集合。由于用户的需求和软、硬件技术的不断发展变化,按照功能划分设计的系统模块必然是易变的和不稳定的。特别是随着系统规模的扩大,程序的复杂性也进一步增加,修改程序的困难也增大,系统的可维护性较差。,3.1.2 面向对象程序设计的基本概念和特征 面向对象程序设计思想更加符合人们认识现实世界的方式。现实世界是由各种各样的事物组成的,包括有形的事物和无形的事物。例如植物、人、汽车、计算机等是有形的事物,思想、一项计划等是无形的事物。人们认识现实世界是从认识现实世界中的一些具体的事物开始的。现实世界中的每个事物都有各自的属性和行为,属性表示事物的静态特征,行为表示事物的动态特征,属性和行为是一个不可分割的整体。人们通过研究事物的属性和行为而认识事物。简单的事物之间相互作用、联系和组合可以构成复杂的事物。在面向对象程序设计中,用对象模拟现实世界中的事物,以对象为基本单位,分析、设计和实现一个系统。,与面向过程程序设计以过程组织程序不同,面向对象程序设计以数据为中心来描述系统,按照数据来组织程序,其基本思想是数据决定对代码的访问。面向对象程序设计将表示属性特征的数据和对数据进行操作的方法封装在一起,构成一个完整的对象。对同类型对象抽象出共性,形成类。类中的大多数属性数据,只能用本类的方法进行处理。对象通过一些外部接口与其它对象发生联系,对象与对象之间通过消息进行通信。 类是具有相同属性特征和行为特征的一组对象的集合,它规定了这些对象的公共属性和行为方法。类和对象之间的关系是抽象和具体的关系,类是对多个对象进行综合抽象的结果,对象是类的实例。例如,汽车是一个类,行驶在公路上的一辆汽车则是一个对象。,面向对象程序设计中,程序是由一系列相互作用的对象构成的,对象之间通过发送消息实现通信。消息是一个对象向另一个对象发出的服务请求,如果用户或其它对象向该对象提出服务请求,便可以称为向该对象发送消息。消息传递的语法结构随系统的不同而不同,一般由如下几部分组成: 接收消息的对象,又被称为目标对象。 请求对象的方法。 一个或多个参数。,面向对象程序设计方法具有三个最基本的特征:封装性、继承性和多态性。 (1) 封装性。封装性是一种程序设计机制,将对象的属性(数据)和行为(对数据操作的代码)组合成一个有机的整体,同时决定哪些属性和行为用于表示对象的内部状态,对外界是隐藏的;哪些属性和行为对外界是可见的,是提供给外界的接口。外界只能通过对象提供的外部接口操作对象。,(2) 继承性。继承是一种连接类与类的层次模型,是指一个新类可以从现有的类派生而来。通过继承,新类(子类或派生类)拥有了现有类(父类或基类)的特征,包括属性和行为,同时可以修改或增加新的属性和行为,使新类更适合具体的需要。这样,在设计新类时,只需对新类增加的内容或是对现有类内容的修改设计代码。可见,继承性简化了类的设计,提高了软件的重用性,大大提高了软件的开发效率和系统的可靠性。 (3) 多态性。多态性是指允许不同类的对象对同一消息做出不同的响应。例如,同样的加法,将两个时间加在一起和将两个整数加在一起的内涵完全不同。利用多态性,可以在基类和派生类中使用同样的函数名,定义不同的操作,从而实现“一个接口,多种方法”。至于在某种条件下应该选择哪种方法,则留给编译器来完成,程序员无需人工完成这种选择,只需记住并使用这个通用接口就行了。多态性增强了软件的灵活性和重用性。,3.2 类 与 对 象 3.2.1 类的定义 C+中,类的定义一般包括说明部分和实现部分。说明部分用来说明类的成员,包括数据成员的名字和数据类型、成员函数的原型或实现。实现部分包括各成员函数的定义。,【例3.1】 类定义示例。定义一个用来描述平面上坐标点的类Point。 class Point private: int x,y; public: void SetPoint(int a,int b) x=a; y=b; int GetX() return x; ,int GetY() return y; void ShowPoint() cout“(“x“,“y“)“endl; ; 对于平面上一个坐标点,其基本属性是坐标位置,因此在类中说明了两个数据成员x和y用来保存坐标值。对坐标点的操作,一般有设置坐标、显示坐标,另外,需要返回坐标的值,因此,在类Point中包含了对坐标操作的成员函数SetPoint、GetX、GetY和ShowPoint。将数据和对数据的操作封装在类Point中,就形成了一个完整的整体。,类定义的一般形式如下: class 类名 private: 私有数据成员和成员函数的说明或实现 public: 公有数据成员和成员函数的说明或实现 protected: 保护数据成员和成员函数的说明或实现 ; /实现部分 各成员函数的实现,类的定义由关键字class开始,其后是用户定义的类名;花括号内的部分称为类体,用来声明类的成员;最后的分号表示类声明的结束。关键字private、public和protected称为访问权限控制符,用来设置数据成员和成员函数的访问属性。在定义成员时,如果省略了访问权限控制符,则其访问属性默认为private。 类中的每一个成员都有确定的访问属性。关键字private下说明的数据成员和成员函数是类的私有成员,它们只能被本类的成员函数或友元函数访问。将成员说明为私有的,可以起到隐藏成员的作用,提高安全性。关键字public下说明的数据成员和成员函数是类的公有成员,它们可以被本类的成员函数访问,也可以被其它类的成员函数或程序中的其它函数(通过对象)访问,它们是类的外部接口。关键字protected下说明的数据成员和成员函数是类的保护成员,它们可以由本类的成员函数访问,也可以由其派生的派生类的成员函数访问,但不允许程序中的其它函数访问。保护成员的具体访问规则在第4章中详细介绍。,【例3.2】 类的定义示例。 class Employee char Name20; char Sex; int Age; public: void RegisterInfo(char *name,char sex,int age); void ShowInfo(); ; 在本类中省略了关键字private,则三个数据成员缺省为私有成员。类中对成员函数只给出了函数原型,没有函数的实现。,说明: (1) 类定义中的访问权限控制符private、public和protected可以按任意顺序出现任意次。建议将相同访问权限的成员归类放在一起,以使程序结构更清晰。 至于私有成员和公有成员在类中出现的先后顺序,不同的程序员有不同的主张。主张将私有成员放在前面的程序员认为,由于成员的缺省访问权限是private,一旦程序员忘记使用控制符private,类的数据仍然能得到保护。主张将公有成员放在前面的程序员认为,公有成员是类提供的外部接口,是用户所关心的,便于阅读。 (2) 类中说明的数据成员可以是任何数据类型,包括自身类的指针或引用,但不能是自身类的对象。 (3) 在类中说明的任何成员不能使用extern、auto和register关键字进行修饰。,(4) 不允许在类定义中对数据成员进行初始化。例如,下述类定义是错误的: class Point private: int x,y=5; /错误,类定义时对数据成员进行了初始化 / ; 因为类描述的是这个类所有对象共同的属性,只有具体的对象才能确定属性的值。另外,类定义是一种数据类型的定义,类作为数据类型,它本身不占用存储空间,只有在定义了类类型的变量后,系统才为其分配存储空间。,3.2.2 成员函数的定义 类的定义一般包括说明部分和实现部分。说明部分用来说明类的成员,包括数据成员的名字和数据类型、成员函数的原型或实现。对于成员函数,可以只在说明部分给出函数原型,其定义可以在类的实现部分实现,也可以在类的说明部分给出。 在类的实现部分,成员函数的定义与普通函数的定义形式基本相同,但必须在成员函数名前加上类名和作用域运算符“:”,说明成员函数所属的类。 在实现部分,成员函数定义的形式如下: 数据类型 类名:函数名(参数表) 函数体 ,【例3.3】 例3.2中类Employee的完整定义。 #include #include /说明部分 class Employee char Name20; char Sex; int Age; public: void RegisterInfo(char *name,char sex,int age); void ShowInfo(); ; /实现部分,void Employee:RegisterInfo(char *name,char sex,int age) strcpy(Name,name); Sex=sex; Age=age; void Employee:ShowInfo() coutName't'Sex't'Ageendl; 从这个例子中可以看出,虽然函数RegisterInfo()和ShowInfo()是在类体外的实现部分定义的,但它们与数据成员属于同一个类Employee,它们可以直接使用类中的数据成员Name、Sex和Age。,3.2.3 对象的定义与使用 1. 对象的定义 定义一个对象,与定义一个一般变量的格式相同。定义对象的一般格式如下: 类名 对象名表; 其中,“类名”是定义的对象所属类的类名,“对象名表”中可以有一个或多个对象名,多个对象名之间用逗号分隔。对象名表中可以是一般的对象名,也可以是指向对象的指针名或对象的引用,还可以是对象数组名。 例如,定义类Employee的对象的格式如下所示: Employee empl,*pempl,AllEmpl32; 即定义了类Employee的一般对象empl、指向类Employee的对象的指针*pempl和对象数组AllEmpl。数组AllEmpl中的每个元素都是对象。,2. 对象的使用 对象的使用实际上是对象中成员的使用。对象成员是指该对象所属类中定义的成员,包括数据成员和成员函数,其访问形式与结构变量成员的访问形式相同。 通过一般对象访问对象成员的格式如下: 对象名.数据成员名 对象名.成员函数名(参数表) 其中,运算符“.”称为成员选择运算符。,通过指向对象的指针访问对象成员的格式如下: 对象指针名-数据成员名 对象指针名-成员函数名(参数表) 或 (*对象指针名).数据成员名 (*对象指针名).成员函数名(参数表) 其中,运算符“-”也称为成员选择运算符。 例如: Employee empl,*pempl= 另外,通过对象的引

注意事项

本文(Visual C++基础教程 教学课件 ppt 作者 郭文平 第1-6章 第3章)为本站会员(E****)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.