电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

实验3-多态性

13页
  • 卖家[上传人]:壹****1
  • 文档编号:432048501
  • 上传时间:2022-12-20
  • 文档格式:DOC
  • 文档大小:86KB
  • / 13 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、西华大学实 验 报 告( 2010/ 2011 学年 第 二 学期)课程名称面向对象程序设计实验名称多态性实验时间年月日指导单位指导教师学生姓名班级学号学院(系)专 业实 验 报 告实验名称多态性实验实验类型综合实验学时22一、 实验目的和要求(1)进一步熟悉类的设计、运用继承与派生机制设计派生类,合理设置数据成员和成员函数。(2)掌握双目运算符、单目运算符的重载方法,对常用算术运算符能在自定义类中通过友元函数、成员函数进行重载,以实现静态多态性。(3)掌握通过继承、虚函数、基类的指针或引用实现动态多态性的方法。(4)理解并掌握有纯虚函数的抽象类的作用,在各派生类中重新定义各纯虚函数的方法,以及此时实现的动态多态性。二、实验环境(实验设备) 硬件: 微型计算机 软件: Microsoft Visual C+6.0三、实验原理及内容实验题目(1): 定义一个抽象类容器类Container,其中定义了若干纯虚函数,实现求表面积、体积、输出等功能。由此抽象类派生出正方体、球体和圆柱体等多个派生类,根据需要定义自己的成员变量,在各个派生类中重新定义各纯虚函数,实现各自类中相应功能,各个类成员的

      2、初始化均由本类构造函数实现。在主函数中,定义容器类的指针和各个派生类的对象,使指针指向不同对象处调用相同的函数能执行不同的函数代码,从而实现动态多态性。实验解答: 根据实验提示完成实验,完整的程序代码如下:#includeusing namespace std;#define PI 3.14159class Containerprotected:double radius;public:Container(double r=0)radius=r;virtual void area()=0;virtual void volume()=0;virtual void print()=0;class Cube:public Containerprivate:double l;public:Cube(double x)l=x; virtual void area()coutThe containers area is:6*l*lendl;virtual void volume()coutThe containers volume is:l*l*lendl;virtual void print()

      3、coutIt is a cube!n;class Sphere:public Containerprivate:double r;public:Sphere(double y)r=y;virtual void area()coutThe containers area is:4*PI*r*rendl;virtual void volume()coutThe containers volume is:4/3*PI*r*r*rendl;virtual void print() coutIt is a sphere!n;class Cylinder:public Containerprivate:double r; double h;public:Cylinder(double r1,double h1) r=r1;h=h1;virtual void area() coutThe containers area is:2*PI*r*r+2*PI*r*hendl;virtual void volume() coutThe containers volume is:PI*r*r*hendl; v

      4、irtual void print()coutarea();p-volume();p-print(); p=&Sp;p-area();p-volume();p-print();p=&Cy;p-area();p-volume();p-print();实 验 报 告你在主函数中调用该函数时测试动态多态性所增加的语句是: P=&Cu; P=&Sp; P=&Cy;由两步,请在小结中总结关于动态多态性的实现方法。 在基类与派生类中存在的同名成员函数,定义时在形式参数的个数,顺序,类型方面有所不同,在程序编译时就能根据时机参数与形式参数的匹配情况,确定该类对象究竟调用了哪一个成员函数。主函数中定义一个Container类对象,请在小结中记录编译时的error和warning信息,从而得出什么结论?纯虚函数不能被调用,因为它只有函数名,而无具体实现代码,无法实现具体的功能。实 验 报 告实验题目(2): 定义复数类Complex,有实部、虚部两个私有成员变量,在该类中定义多个重载的构造函数、定义析构函数和输出函数print,复数的输出形如12-3i,在类中重载+、-、*、/、+(分前+和后+)。在主

      5、函数中定义复数类的对象,实现复数的各种算术运算,通过重载实现静态多态性。实验解答:根据实验提示完成实验,完整的程序代码如下:#includeusing namespace std;class Complexprivate:float real;float imag;public:Complex(float r=0,float i=0)real=r;imag=i;void print()coutreal+imagendl; Complex operator*(Complex c1);Complex operator/(Complex c1);Complex operator+(int);friend Complex operator+(const Complex &c1,const Complex &c2);friend Complex operator-(const Complex &c1,const Complex &c2);friend Complex operator+(Complex &c1);Complex Complex:operator*(Complex c1)/Comp

      6、lex c;real=real*c1.real;imag=imag*c1.imag;return *this;Complex Complex:operator/(Complex c1)/Complex c;real=real/c1.real;imag=imag/c1.imag;return *this;Complex Complex:operator+(int) / Complex c(*this);real+;imag+;return *this;Complex operator+(const Complex &c1,const Complex &c2)Complex c;c.real=c1.real+c2.real;c.imag=c1.imag+c2.imag;return c;Complex operator-(const Complex &c1,const Complex &c2)Complex c;c.real=c1.real-c2.real;c.imag=c1.imag-c2.imag;return c;Complex operator+(Complex &c1)+c1.r

      7、eal;+c1.imag;return c1;int main()Complex a1(2.3,4.6),a2(3.6,2.8); Complex a3,a4,a5,a6;a3=a1+a2;a4=a1-a2;a5=a1*a2;a6=a1/a2;couta1=;a1.print();couta2=;a2.print();couta3=a1+a2=;a3.print();couta4=a1-a2=;a4.print();couta5=a1*a2=;a5.print();couta6=a1/a2=;a6.print();a3=+a1;coutafter a3=+a1;couta1=;a1.print();couta3=;a3.print();a4=a2+;coutafter a4=a2+;couta2=;a2.print();couta4=;a4.print();return 0;实 验 报 告程序的运行结果是: A1=2.3+4.6 A2=3.6+2.8 A3=a1+a2=5.9+7.4 A4=a1-a2=-1.3+1.8 A5=a1*a2=8.28+12.88 A6=a1/a2=2.3+4.6 After a3=+a1 a1=3.3+5.6 A3=3.3+4.6 After a4=a2+ a2=4.6+3.8 A4=4.6+3.8将主函数中所有以隐式方式调用重载运算符的语句改写成等效的显式调用重载运算符的语句为:以隐式方式调用重载运算符的语句等效的显式调用重载运算符的语句A3=A1+A2;A3=operator+(a1,a2)A4=A1-A2;A4=operator-(a1

      《实验3-多态性》由会员壹****1分享,可在线阅读,更多相关《实验3-多态性》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.