面向对象程序设计实验八_第1页
面向对象程序设计实验八_第2页
面向对象程序设计实验八_第3页
面向对象程序设计实验八_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

温州大学物理与电子信息工程学院 面向对象程序设计实验报告实验名称:实验八:虚函数和多态性班 级:计算机姓 名:钱旭北学 号:07202043217实验地点:5B305日 期:一、实验目的:1、掌握虚函数和纯虚函数的声明方法。2、理解抽象类的特点。3、掌握多态性的实现原理。二、实验环境:windows 2000, visual c+6.0或cfree三、实验内容和要求:1、自编一个程序,要求用到虚基类。2、定义一个graphic类,其中定义求体积的volume(), 求表面积的surface()纯虚函数。再定义正方体、圆柱体、球等派生类,其中有具体的求体积和表面积的函数。再写一个求3个对象表面积之和的普通函数funs(graphic&, graphic&, graphic&)和一个求3个对象体积之和的普通函数funv(graphic&, graphic&, graphic&)。在main函数中调用funs和funv求三个不同形状的物体表面积和体积之和。四、预习内容:1、 虚基类的作用是什么?将共同基类设置为虚基类,这时从不同的路径继承过来的同名数据成员在内存中就只有一个拷贝,同一个函数名也只有一个映射2、 虚函数的作用是什么,怎样使用才能使其发挥作用?通过基类的指针或引用来调用子类的成员函数 3、什么叫抽象类?带有纯虚函数的类就是抽象类。五、实验步骤(各源程序文件):#includeusing namespace std;class base int x; public : base(int i) x=i; coutx=xendl; ;class base1:virtual public base int y; public : base1(int a,int b):base(a)y=b; couty=yendl; ;class base2:virtual public base int z; public : base2(int a,int c):base(a) z=c; coutz=zendl; ;class derive :public base1,public base2 int w; public: derive(int a,int b,int c,int d):base1(a,b),base2(a,c), base(a) w=d; coutw=wendl; ;int main() derive d(1,2,3,4); return 0;2#includeusing namespace std;class graphic public: virtual float volume()=0; virtual float surface()=0;float funs(graphic &a,graphic &b,graphic &c) return a.surface()+b.surface()+c.surface();float funv(graphic &a,graphic &b,graphic &c) return a.volume()+b.volume()+c.volume();class zhengfangxing :public graphic int bianzhang; public : zhengfangxing(int n):bianzhang(n) float volume()return bianzhang*bianzhang*bianzhang; float surface()return 6*bianzhang*bianzhang;class yuanzhu :public graphic int banjin,high; public : yuanzhu(int x,int y):banjin(x),high(y) float volume()return 3.14*banjin*banjin*high; float surface()return 2*3.14*banjin*banjin+2*3.14*banjin*high; ;class qiu :public graphic int banjin; public : qiu(int n):banjin(n) float volume() return 4/3.0*3.14*banjin*banjin*banjin; float surface() return 4*3.14*banjin*banjin;void main() zhengfangxing x(2); yuanzhu y(2,3); qiu z(2); coutfunv(x,y,z)endl; coutfuns(x,y,z)endl;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论