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

  • 3
  • 0
  • 约1.29万字
  • 约 41页
  • 2018-03-06 发布于湖北
  • 举报

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

第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)

1亿VIP精品文档

相关文档