第11章 面向对象的程序设计.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第11章 面向对象的程序设计.ppt

第11章 面向对象的程序设计 11.1 面向对象的程序设计思路 11.1.1 类与数据封装 11.1.2 派生类与继承性 11.1.3 虚函数与多态性 11.1.4 数据存储与屏幕重绘 11.1.5 画图程序的设计思路 * 面向对象的程序设计模仿人们建立现实世界模型的方法,认为客观世界是由各种各样的对象组成,每个对象都有各自的内部状态和运动规律,不同对象之间的相互作用和联系就构成了各种各样的系统。利用人们对事物分类和抽象的自然倾向,引进了类的概念,具有封装性、继承性和多态性等特点。 本章以画图程序为例,介绍面向对象的程序设计思路、图形类的定义和画图程序的实现。 在C++中, 类是用class关键字定义的一种抽象数据类型,将一组具有相关性的数据成员和成员函数组合在一起。在其他编程语言中,一般称数据成员为属性,称成员函数为方法。 数据封装是指限制类中部分成员被外界使用,只允许被类内的成员函数使用。它采用的办法是在定义成员时在其前面冠以private或protected或 public,分别表示私有的、保护的、公有的。 例如,在图形程序设计中,我们把各种图形形状,如直线、矩形、圆、圆弧、曲线、多边形等定义为各种各样的图形类,将其属性如颜色、线型、线宽、坐标点等定义为图形类的private数据成员,将图的具体绘制、存储操作和属性设置定义为图形类的public成员函数,这样就实现了类与数据封装。 例如,直线类可以定义为: class CLine {private: COLORREF m_color; // 直线的颜色 int m_lineWidth, m_lineStyle;// 直线的线宽和线型 CPoint m_beginPoint; // 直线的起点 CPoint m_endpoint; // 直线的终点 Public: COLORREF getColor(); // 返回直线的颜色 void setColor(COLORREF color);//设置直线的颜色 UINT getLineStyle(); // 返回直线的线型 void setLineStyle(UINT style); // 设置直线的线型 int getLineWidth(); // 返回直线的线宽 void setLineWidth(int width); // 设置直线的线宽 CPoint getBeginPoint(); // 返回直线的起点 CPoint getEndpoint(); // 返回直线的终点 void Draw(CDC *pDC); // 直线的具体绘制 void Serialize(CArchive ar); // 直线的存储操作 …… }; 在C++中,派生类和继承性是指用户可以利用已有的类(称为基类或父类)定义出新的类(派生类或子类),派生类中不但拥有基类中的全部或部分数据成员与成员函数,而且还可以定义新的数据成员与成员函数。 例如,在一个图形程序中,要绘制直线、矩形、圆、圆弧、曲线、多边形等。虽然这些图形的形状差别很大,但是它们有些数据成员和成员函数是相同的,如颜色、线型、线宽属性以及设置/获取这些属性的成员函数。 因此我们可以把这些共同点定义为一个基类CShape,然后从CShape类派生出直线类、矩形类、圆类、圆弧类、曲线类、多边形类等,这样,每个派生类中都继承有这些共同点,又可以定义自己独特的成员。 CShape类的定义: class CShape { protected: COLORREF m_color; // 颜色 UINT m_lineStyle; // 线型 int m_lineWidth; // 线宽 Public: COLORREF getColor(); // 返回颜色 void setColor(COLORREF

文档评论(0)

gshshxx + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档