欢迎来到天天文库
浏览记录
ID:35342183
大小:98.36 KB
页数:11页
时间:2019-03-23
《实验6多态性和虚函数(3)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、VC++面向对象程序设计-实验报告(要提交)学号姓名系别班级教师实验口期同组成员无一、实验编号及名称:实验6多态性和虚函数(3)二、实验目的:1•掌握虚函数的定义与使用方法;2.掌握运算符重载的两种方法三、实验内容及要求第一节:分析程序P1575.画出基类与派生类层次结构图,注明类之间的派生方式,指出类中的各成员函数是否虚函数;指出当ch=f及ch=W时,指针ch的指向;最后写出程序的运行结果。#include#includeclassfairy_tale{public:virtualvoidact1(){cout«np
2、rincessmeetsfrogH;act2();}voidact2(){cout«nprincesskissesfrogM;act3();}virtualvoidact3(){cout«HfrogturnsintoprinceM;act4();}virtualvoidact4(){cout«"theylivehappyeverafter";act5();}virtualvoidact5(){cout«MtheendH;}};classunhappy_tale:publicfairy-tale{voidact3(){cout«nfrogsta
3、ysanotherfrogn;act4();}voidact4(){cout«MprincessrunsawayindisgustH;act5();voidact5(){cout«Hthenot-so-happyendH;}voidmain(){charch;fairy_tale*tale;cout«Hwhichtalewouldyouliketohear(f/u)?H;cin»ch;if(ch=='f)tale=newfairy_tale;elsetale=newunhappy_tale;tale->actl();deletetale;1程序填空:
4、第1题.#includeclassRMB{RMBRMB::operator+(RMB&s){unsignedintc=jf+s.jf;unsignedintd二yuan+s.yuan;if(c>=100){c-二100;d++};RMBresult(d,c);returnresult;}RMB&RMB::operator++(){jf卄;if(jf>=100){jf=100;yuan++;}return*this;RMBdl(l,60);RMBd2(2,50);RMBd3(0,0);d3=dl+d2;public:RMB(unsigned
5、intd,unsignedintc);RMBoperator+(RMB&);//声明运算符函数,重载+,只有一个参数RMB&operator++();//声明运算符函数,重载++,无参数voiddisplay(){cout«(yuan+jf/100.0)«endl;}protected:unsignedintyuan;unsignedintjf;};RMB::RMB(unsignedintd,unsignedintc){yuan=d;jf=c;while(jf>=100){yuan++;jf-=100;//定义运算符函数//相当于unsignedintc=thi
6、s-〉jf+s.jf//创建RMB对象result//定义运算符函数//返回当前对象voidmain()//调用重载运算符函数operator+,使RMB类的两个对象可以相加//相当于d3=dl.operator+(d2)++d3;//调用重载运算符函数operator-//相当于d3.operator++();d3.display();}2.#includeclassRMB{public:RfB(unsignedintd,unsignedintc);friendRMBoperator+(RMB&,RMB&);friendRMB&ope
7、rator++(RMB&);voiddisplayO{cout<<(yuan+jf/100.0)<=100){yuan++;jf-=100;}}RMBoperator+(RMB&si,RMB&s2){unsignedintjf二si.jf+s2.jf;unsignedintyuan=sl.yuan+s2.yuan;RMBresult(yuan,jf);re
8、turnresult;}
此文档下载收益归作者所有