网站大量收购独家精品文档,联系QQ:2885784924

第09章 多态性:总结 计划 汇报 设计 纯word可编辑课件.ppt

第09章 多态性:总结 计划 汇报 设计 纯word可编辑课件.ppt

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

9.4 纯虚函数 纯虚函数是在基类中声明的虚函数,它在声明它的基 类中没有定义,要求任何派生类都必须为该虚函数定义自 己的版本。 说明纯虚函数的一般格式如下: virtual 函数原型 = 0; 例如,为了把Figure类的虚函数ShowArea说明为纯虚 函数,应该像下面那样声明它: virtual void ShowArea() = 0; * 9.4 纯虚函数 关于纯虚函数和抽象类的使用,C++语言 有以下规定: ⑴抽象类只能作为其他类的基类,不能声明抽象 类的实例。 ⑵ 在从抽象类派生出的新类中,必须重新定义其 父类的每个纯虚函数;或者把这些函数继续声明 为纯虚函数,这样做派生类也就成为抽象类。 * 9.4 纯虚函数 ⑶ 在类等级的上层定义一个或几个抽象类作为基类,而 在下层定义由基类派生出的具体类的情况比较常见,但 是,不允许从具体类派生出抽象类。所谓具体类,就是不 包含纯虚函数的普通类。 ⑷ 在抽象类中也可以定义普通成员函数或虚函数,虽然 不能为抽象类声明对象,但仍然可以通过派生类对象来调 用这些不是纯虚函数的函数。 * 9.5 虚函数应用实例之二 要求设计一个面向对象的程序,以完成下列几项功能: ⒈在显示器荧光屏上指定位置显示指定的图形(点或圆),或 擦去屏幕上正在显示的某个图形; ⒉放大或缩小屏幕上正在显示的圆; ⒊把某个图形从屏幕上原来的位置移动到指定的新位置; ⒋在屏幕上沿指定方向以指定的速度连续拖动指定 的图形。(参考教材请同学上机练习) * #include ”graphics.h” #include ”conio.h” enum Boolean{false, true}; class Location { protected : int X; int Y; public : Location(int InitX, int InitY) { X = InitX; Y = InitY; } int GetX(){ return X; } int GetY(){ return Y; } }; 9.5 虚函数应用实例之二 * class Point : public Location {  protected : Boolean Visible; public : Point(int InitX, int InitY); virtual void Show(); // 虚函数 virtual void Hide(); // 虚函数 virtual void Drag(int DragBy); // 虚函数 Boolean IsVisible(){ return Visible; } void MoveTo(int NewX,int NewY); }; class Circle : public Point { protected : int Radius; public : Circle(int InitX, int InitY, int InitRadius); void Show(); // 虚函数 void Hide(); // 虚函数 void Expand(int ExpandBy); void Contract(int ContractBy); }; 9.5 虚函数应用实例之二 * Boolean GetDelta(int DeltaX, int DeltaY) { char KeyChar; Boolean Quit; DeltaX = 0; DeltaY = 0; do { KeyChar = getch(); // 读键盘输入 if(KeyChar == 13) return (false); // 回车键结束拖动 if(KeyChar == 0) // 扩展键码 { Quit = true; // 假设按对了键盘 KeyChar = getch(); // 读剩余的键码 switch(KeyChar) { case 72 : DeltaY = -1;break; // 上箭头键 case 80 : DeltaY = 1;break; // 下箭头键 case 75 : DeltaX = -1;break; // 左箭头键 case 77 : DeltaX = 1;break; // 右箭头键 default : Quit = false; // 错键 } } }wh

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档