实验8多态性与虚函数1.docVIP

  • 94
  • 0
  • 约1.73千字
  • 约 3页
  • 2017-03-09 发布于重庆
  • 举报
实验8多态性与虚函数1

实验八 多态性与虚函数(1) 一、实验目的和要求 了解多态的概念; 了解虚函数的作用及使用方法; 了解静态关联和动态关联的概念和用法; 了解纯虚函数和抽象类的概念和用法 二、实验内容和结果 阅读下面的程序? 1.1请写出程序的执行结果,并在上机时对照理解? class?Vehicle public: void?run ?const? ?cout? ?run?a?vehicle.? endl;? ?// 1 ?run 为虚函数? ;?? class?Car:?public?Vehicle public: void?run ?const? cout? ?run?a?car.? endl; ;?? class?Airplane:?public?Vehicle public: void?run ?const? cout? ?run?a?airplane.? endl; ;?? int?main cout a ?直接用对象访问成员函数:? endl; Vehicle?v; v.run ; Car?car; Airplane?airplane; car.run ; airplane.run ; cout b ?用指向基类的指针访问成员函数:? endl; Vehicle?*vp; vp car; vp‐ run ; vp airplane; vp‐ run ; 1.2 如果将 Vehicle 类的定义修改为虚函数,其余不变,请写出程序的执行结果,并在上机时对照理解? class?Vehicle public: virtual?void?run ?const? ?cout? ?run?a?vehicle.? endl;? ?// 2 ?run 为虚函数? ;? 1.3如果将 Vehicle 类的定义修改为纯虚函数,找出 main 函数中将使编译出错的行删除(或改为注释) ,请写出程序的执行结果,并在上机时对照理解? class?Vehicle public: virtual?void?run ?const? ?0;?// 3 ?run 为纯虚函数? ;?? 1.4 用自己的话概括你对虚函数、多态性和抽象类的理解。 利用虚函数实现的多态性来求四种几何图形的面积之和。这四种几何图形是:三角形、矩形、正方形和圆。几何图形的类型可以通过构造函数或通过成员函数来设置。 计算这四种几何图的面积公式分别是: 三角形的边长为W,高为H时,则三角形的面积为W* H/2;矩形的边长为W,宽为H时,则其面积为W* H;正方形的边长为S,则正方形的面积为S*S;圆的半径为R,其面积为 3.1415926 *R *R。 为设置几何图形的数据并求出几何图形的面积,需要定义一个包含两个虚函数的类: class Shape public: virtual float Area void 0; //求面积 virtual void Setdata float ,float 0 0; //设置图形数据 ; 因面积的计算依赖于几何图形,故在类中只能定义一个纯虚函数Area。同理,设置几何图形数据的函数Setdata也只能定义为虚函数。 把这个基类派生出其它几何图形类。如派生出的三角形类为: class Triangle:public Shape float W,H; //三角形边长为W,高为H public: Triangle float w 0,float h 0 W w; H h; float Area void return W*H/2; void Setdata float w,float h 0 W w; H h; ; 在派生类中定义了基类中两个虚函数的实现。为了实现求面积和设置数据的多态性,必须定义一个类,该类中定义一个指向基类Shape的指针数组,其元素分别指向由基类Shape派生出的不同的几何图形类,并完成求出所有几何图形面积之和,以及设置参数的函数。

文档评论(0)

1亿VIP精品文档

相关文档