- 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派生出的不同的几何图形类,并完成求出所有几何图形面积之和,以及设置参数的函数。
您可能关注的文档
- 实验2网络常用命令使用.doc
- 实验2过电流保护实验.doc
- 实验2迭代与分形.doc
- 实验2高频功率放大与发射实验.doc
- 实验2酶切片段回收和连接.doc
- 实验3--非线性方程求根.doc
- 实验309磁场分布.doc
- 实验3-虚拟专用网.doc
- 实验30用超声光栅测量声速.doc
- 实验3+由正规文法构造正规式.doc
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
最近下载
- 中医护理技术在骨科中的应用.ppt VIP
- 非煤矿山节后复工安全培训.pptx VIP
- 吉林省松原市长岭县2025~2026学年度下学期第一次月考试卷 八年英语(含答题卡、答案).docx VIP
- 2019新人教版高中英语必修二Unit4词汇表.pdf VIP
- 2025年上半年中国铁路西安局集团有限公司校招笔试题带答案.docx VIP
- 教育学原理-第三章-教育与人的发展【实用参考】.ppt VIP
- 婴幼儿早期教育课程标准.docx VIP
- 景成道人培训课件.ppt VIP
- 2022年高中军训心得体会(集合15篇).docx VIP
- (统编版2024)语文七年级下册 第三单元《课外古诗词诵读》课件(新教材).pptx
原创力文档

文档评论(0)