欢迎来到天天文库
浏览记录
ID:42337800
大小:155.00 KB
页数:24页
时间:2019-09-13
《习题练习_免费下载》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验九多态性与虚函数(2)一、实验目的和要求1.了解多态的概念;2.了解虚函数的作用及使用方法;3.了解静态关联和动态关联的概念和用法;4.了解纯虚函数和抽象类的概念和用法二、实验内容和结果1.声明一个车(vehicle)基类,具有MaxSpeed、weight等成员变量有Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,自行车(bicycle)类有高度(Height)等属性,汽车(motorcar)有座位数(SeatNum)等属性,类从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数,使
2、用虚函数完成。(各个类都必须定义构造函数和析构函数)2.定义抽象基类Shape,由它派生出3个派生类:Circle,Square,Rectangle,Triangle,Trapezoid(梯形)。用一个函数printArea分别输出以上五者的面积,5个图形的数据在定义对象时给出。3.试做题,将第二题修改成简单工厂模式,体会其中的设计模式。三、实验流程实验八多态性与虚函数(1)一、实验目的和要求5.了解多态的概念;6.了解虚函数的作用及使用方法;7.了解静态关联和动态关联的概念和用法;8.了解纯虚函数和抽象类的概念和用法二、实验内容和结果4.阅读下面的程序 1.1请写出程序的执行结果,并在上
3、机时对照理解 class Vehicle {public: void run() const { cout << "run a vehicle. "<4、; int main() { cout<<"(a) 直接用对象访问成员函数: "<run(); vp=&airplane; vp‐>run(); } 1.2如果将Vehicle类的定义修改为虚函数,其余不变,请写出程序的执行结果,并在上机时对照理解 class Vehicl5、e {public: virtual void run() const { cout << "run a vehicle. "<6、之和。这四种几何图形是:三角形、矩形、正方形和圆。几何图形的类型可以通过构造函数或通过成员函数来设置。解:计算这四种几何图的面积公式分别是:Ø三角形的边长为W,高为H时,则三角形的面积为W*H/2;Ø矩形的边长为W,宽为H时,则其面积为W*H;Ø正方形的边长为S,则正方形的面积为S*S;Ø圆的半径为R,其面积为3.1415926*R*R。为设置几何图形的数据并求出几何图形的面积,需要定义一个包含两个虚函数的类:classShape{public:virtualfloatArea(void)=0;//求面积virtualvoidSetdata(float,float=0)=0;//设置图形数7、据};因面积的计算依赖于几何图形,故在类中只能定义一个纯虚函数Area。同理,设置几何图形数据的函数Setdata也只能定义为虚函数。把这个基类派生出其它几何图形类。如派生出的三角形类为:classTriangle:publicShape{floatW,H;//三角形边长为W,高为Hpublic:Triangle(floatw=0,floath=0){W=w;H=h;}floatArea(void){returnW*H/
4、; int main() { cout<<"(a) 直接用对象访问成员函数: "<run(); vp=&airplane; vp‐>run(); } 1.2如果将Vehicle类的定义修改为虚函数,其余不变,请写出程序的执行结果,并在上机时对照理解 class Vehicl
5、e {public: virtual void run() const { cout << "run a vehicle. "<6、之和。这四种几何图形是:三角形、矩形、正方形和圆。几何图形的类型可以通过构造函数或通过成员函数来设置。解:计算这四种几何图的面积公式分别是:Ø三角形的边长为W,高为H时,则三角形的面积为W*H/2;Ø矩形的边长为W,宽为H时,则其面积为W*H;Ø正方形的边长为S,则正方形的面积为S*S;Ø圆的半径为R,其面积为3.1415926*R*R。为设置几何图形的数据并求出几何图形的面积,需要定义一个包含两个虚函数的类:classShape{public:virtualfloatArea(void)=0;//求面积virtualvoidSetdata(float,float=0)=0;//设置图形数7、据};因面积的计算依赖于几何图形,故在类中只能定义一个纯虚函数Area。同理,设置几何图形数据的函数Setdata也只能定义为虚函数。把这个基类派生出其它几何图形类。如派生出的三角形类为:classTriangle:publicShape{floatW,H;//三角形边长为W,高为Hpublic:Triangle(floatw=0,floath=0){W=w;H=h;}floatArea(void){returnW*H/
6、之和。这四种几何图形是:三角形、矩形、正方形和圆。几何图形的类型可以通过构造函数或通过成员函数来设置。解:计算这四种几何图的面积公式分别是:Ø三角形的边长为W,高为H时,则三角形的面积为W*H/2;Ø矩形的边长为W,宽为H时,则其面积为W*H;Ø正方形的边长为S,则正方形的面积为S*S;Ø圆的半径为R,其面积为3.1415926*R*R。为设置几何图形的数据并求出几何图形的面积,需要定义一个包含两个虚函数的类:classShape{public:virtualfloatArea(void)=0;//求面积virtualvoidSetdata(float,float=0)=0;//设置图形数
7、据};因面积的计算依赖于几何图形,故在类中只能定义一个纯虚函数Area。同理,设置几何图形数据的函数Setdata也只能定义为虚函数。把这个基类派生出其它几何图形类。如派生出的三角形类为:classTriangle:publicShape{floatW,H;//三角形边长为W,高为Hpublic:Triangle(floatw=0,floath=0){W=w;H=h;}floatArea(void){returnW*H/
此文档下载收益归作者所有