实验13虚函数

实验13虚函数

ID:42788784

大小:450.01 KB

页数:21页

时间:2019-09-21

实验13虚函数_第1页
实验13虚函数_第2页
实验13虚函数_第3页
实验13虚函数_第4页
实验13虚函数_第5页
资源描述:

《实验13虚函数》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验13虚函数牛旭艳智能二班20110807201一、实验目的1、复习运算符重载。2、了解虚基类的作用和用法。3、进一步理解多态性的概念。4、了解虚函数的作用及使用方法。5、了解静态关联和动态关联的概念和用法。6、了解纯虚函数和抽象类的概念和用法。二、实验内容1.定义Point类,冇坐标x,y两个成员变量,利川友元函数对Point类重载“卄”运算符,实现对坐标值的改变。具体耍求如下:(1)编写程序定义Point类,在类中定义整型的私有成员变量x,y;(2)在类中定义两个友元函数,分别重载前置++和后置卄;(3)编写主函数测试

2、。注意函数有无返回值的区别,以及返回值是否带有&应用符号。2.定义Point类,有坐标x,y两个成员变気利用成员函数对Point类重载“++”运算符,实现对坐标值的改变。具体要求如下:(1)编写程序定义Point类,在类中定义整型的私有成员变最x,y;(2)定义成员函数Pointoperator++();Pointoperator-H-(int);以实现対Point类重载“++”运算符,分别重载前置卄和后置卄;(3)编写主函数测试。3•定义一个分数类,通过重载运算符实现分数的四则运算、求负运算和赋值运算。其屮,要求加法“+”

3、和减法9’用友元函数实现重载,其他运算符用成员函数实现重载。4.定义一个车(vehicle)基类,有Run>Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数。具体要求如下:⑴编写程序定义一个车(vehicle)基类,有Run、Stop等成员函数;⑵市车(vehicle)基类派牛出白行车(bicycle)类、汽车类(motorcar),从bicycle类和motorcar类派生出摩托

4、车类(motorcycle),它们都有Run^Stop等成员函数。(3)在main()函数中定义Vchicle、bicycle>motorcar、motorcycle的对象,调用其Run()>Stop()函数,观察其执行情况。(4)分别用vehicle类型的指针來调用儿个対象的成员函数,看看能否成功(提示:把Rim、Stop定义为虚函数)。5.编写程序,定义抽象基类Container,由此派生出2个派生类球体类Sphere,圜柱体类Cylinder,分别用虚函数分別计算表面积和体积。.42⑴球体的表而积为:4兀厂,球体的体积

5、为一71r;圆柱表面积为:27tR(h+R),圆柱体的体积7cR2ho(2)定义相应的对彖,编写主函数测试。4.分别声明Teacher(教师)类和Cadre(T•部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部)。要求:①在两个基类屮都包含一部分相同名字的数据成员name(姓名),age(年龄)和成员函数display()。②在Teacher类中还包含数据成员title(职称),在Cadre类中还包含数据成员post(职务),在Teacher_Cadre(教师兼干部)中还包含数据成员wage

6、s(工资)。③在派牛.类TeacherCadre的成员函数show中调用Teacher类中的display函数,输出姓名、年龄、职称,然后再用cout语句输出职务与工资。5.编写程序,定义抽象基类Shape(形状),由它派生出3个派生类:Circle(圜形)、Rectangle(矩形)和Triangle(三介形),用虚函数Show()分别显示各种图形的相关信息,并计算显示所有图形的总面积。6.编写程序,定义抽象基类Shape(形状),由它派生出3个派生类:Circle(圆形)、Rectangle(矩形)和Square(正方形

7、),用虚函数ShowArca()分别显示各种图形的面积,并计算显示所冇图形的总面积。要求用基类指针数组,使它的每一个元素指向一个派生类对彖。三、实验程序及结果1、#includeusingnamespacestd;classpoint{private:intx,y;public:point(intjnt);friendvoidoperator++(point&);friendvoidoperator++(point&,int);voiddisplayO;};point::point(inta=0,intb

8、=0):x(a),y(b){}voidpoint::display(){cout«nx=n«x«,t,«ny=H«y;}voidoperator++(point&A){++A.x;++A・y;}voidoperator++(point&A,int){++A.X;++A・y;}intmai

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。