实验6多态性与虚函数
更新时间:2024-04-05 05:50:01 阅读量: 综合文库 文档下载
《C++面向对象程序设计》实验报告
实验6 多态性与虚函数
序号: [实验目的]
1、了解多态性的概念;
2、了解虚函数的用途及使用方法;
3、了解纯虚函数和抽象类的概念和用法。 [实验要求]
给出以下各实验内容的源程序代码,并把编译、运行过程中出现的问题以及解决方法填入实验报告中,按时上交。 [实验学时]
2学时。 [实验内容]
1、写一个程序,定义抽象基类Shape,由它派生出3个派生类:Circle(圆形)、Square(正方形)、Rectangle(矩形)。利用指针、虚函数printArea()分别输出以上三者的面积,3个图形的数据在定义对象时给定。 [源程序]
#include
public: virtual float area()const=0; virtual void display()const=0; };
class Circle:public Shape {
public: Circle(double a):r(a){} virtual float area()const{return 3.14*r*r;} virtual void display()const { cout<<\圆面积\ } private: double r; };
第 1 页 共 1页
《C++面向对象程序设计》实验报告
class Rectangle:public Shape {
public: Rectangle(double a,double b):l(a),w(b){} virtual float area()const{return l*w;} virtual void display()const { cout<<\矩形面积\ }
private: double l; double w; };
class Square:public Shape {
public: Square(double a):a1(a){} virtual float area()const{return a1*a1;} virtual void display()const { cout<<\正方形面积\ }
private: double a1; };
int main() { Circle c1(5); Rectangle r1(5,8); Square s1(2.5); Shape *p[3]={&c1,&r1,&s1}; int i; double m=0.0; for (i=0;i<3;i++) { p[i]->display(); m=m+p[i]->area(); }
第 2 页 共 1页
《C++面向对象程序设计》实验报告
cout<<\总面积:\ }
2、定义Point(点)类,由Point类派生出Circle(圆)类,再由Circle类派生出Cylinder(圆柱体)类。将类的定义部分分别作为3个头文件(.h文件),对它们的成员函数的声明部分分别作为3个源文件(.cpp文件),在主函数(.cpp文件)中用#include命令把它们包含进来,形成一个完整的程序,并上机运行。 [源程序] //Point.h class Point {
public: Point(float a=0,float b=0); void display(); protected: float x,y; };
//Point.cpp
#include
Point::Point(float a,float b) { x=a; y=b; }
void Point::display() { cout<<\}
//Circle.h
class Circle:public Point {
public:
第 3 页 共 1页
《C++面向对象程序设计》实验报告
Circle(float x=0,float y=0,float r=0); void display(); protected: float radius; };
//Circle.cpp
#include
Circle::Circle(float a,float b,float r):Point(a,b),radius(r){} void Circle::display() { cout<<\ cout<<\ cout<<\ cout<<\ cout<<\ cout< //Cylinder.h class Cylinder:public Circle { public: Cylinder (float x=0,float y=0,float r=0,float h=0); void display(); protected: float height; }; //Cylinder.cpp #include Cylinder::Cylinder(float a,float b,float r,float h):Circle(a,b,r),height(h){} void Cylinder::display() { cout<<\ cout<<\ 第 4 页 共 1页 《C++面向对象程序设计》实验报告 cout<<\ cout<<\ cout<<\ cout<<\ cout<<\ cout< //Main.cpp #include 3、要求正方体、球、圆柱的表面积,可以抽象出一个公共的基类Container为抽象类,在其中定义一个公共的数据成员radius(此数据可以作为正方形的边长、球的半径、圆柱体底面圆半径),以及求表面积的纯虚函数area()。由此抽象类派生出要描述的三个类,利用基类指针和虚函数,分别计算三种图形的表面积。 [源程序] #include double radius,height; double area,vol; 第 5 页 共 1页 《C++面向对象程序设计》实验报告 int name; public: Cshape(double r,double h) { radius = r; height = h; name = 3; } Cshape(double r) { radius = r; name = 1; } void DisAttr() { if(name == 1) cout<<\球体信息\ if(name ==2) cout<<\正方形信息\ cout<<\表面积是:\ } void DisAttr(int flag) { cout<<\圆柱信息\ cout<<\表面积是:\ } void Sarea() { area = 4*PI*pow(radius,2); } void Sarea(int cube) { area = 6*pow(radius,2); } void Sarea(double cube) {name = 3; area = 2*PI*pow(radius,2)+2*PI*radius*height; } 第 6 页 共 1页 《C++面向对象程序设计》实验报告 }; int main() { Cshape yuanqiu(3); yuanqiu.Sarea(); yuanqiu.DisAttr(); Cshape zhengfangxing(3); zhengfangxing.Sarea(1); zhengfangxing.DisAttr(); Cshape yuanzhu(3,4); yuanzhu.Sarea(12.3); yuanzhu.DisAttr(1); return 0; } 第 7 页 共 1页
正在阅读:
实验6多态性与虚函数04-05
公司试用期的工作总结03-28
小波变换在图像处理中的应用毕业论文05-07
对男生表白的情书02-19
翟鸿燊沟通技巧培训 讲稿05-04
过去的我作文02-05
如何灵活运用正式的书面语03-08
白油(工业级)检验规格书01-14
小学国旗下讲话稿大全07-31
- 《江苏省环境水质(地表水)自动监测预警系统运行管理办法(试行)》
- 安乐死合法化辩论赛立论稿(浙大新生赛)
- 公共科目模拟试卷公务员考试资料
- 我国固定资产投资FAI对GDP的影响
- 大学生创新创业训练计划项目申请书大创项目申报表
- 完美版—单片机控制步进电机
- 2013资阳中考化学试题
- 18.两位数减一位数退位(397道)
- 工程量计算规则
- 二年级操行评语(下)
- 第3章 流程控制语句
- 浅基桥墩加固技术
- 课题研究的主要方法
- 5100软件说明书 - 图文
- 车间技术员年终总结
- 关于印发《中铁建工集团开展项目管理实验室活动方案》的通知
- 经典诵读结题报告
- 地下水动力学习题答案
- 2018年全国各地高考数学模拟试题平面解析几何试题汇编(含答案解
- 街道办事处主任2018年度述职述廉报告
- 多态性
- 函数
- 实验
- 湖北省武汉市2017-2018学年高三四月调研生物试卷 Word版含解析
- 提高农民培训质量的途径
- 如何增强行动力?
- 2012-2013高三化学重点内容《电离平衡》提高练习题及答案(二)d
- 深圳建筑工程B类(对应省统表2010版)
- 国际法习题
- 2016岩土工程试卷
- 高级数控车工理论知识试题答案3
- 110kV交联聚乙烯绝缘电力电缆技术协议 青岛汉缆课件 - 图文
- 大气探测重点及参考答案
- 加速VPN组网方案 - 图文
- 重庆交通大学造价编制试卷20 - 图文
- 创业人物访谈报告
- 普通高等学校包装工程专业规范 - 图文
- 孔雀东南飞- 课后练习及答案
- NQA-1与HAF003的比较和分析
- 全国2004年4月高等教育自学考试工程流体力学试题
- 2018-2024年中国休闲旅游行业市场前景预测研究报告(目录) - 图
- 仁爱版八年级英语下册Unit6Topic3 - SectionA说课稿
- IT信息化应用系统项目招标技术规格书