您好,欢迎来到尔游网。
搜索
您的当前位置:首页多态性与虚函数

多态性与虚函数

来源:尔游网
实验四、多态性与虚函数

一、实验目的

通过本次实验使学生掌握C++中多态与虚函数的概念,了解多态性在C++中的重要意义,掌握虚函数、纯虚函数以及抽象类在程序中的作用,并掌握编程方法。

二、实验内容

题1( 6-1) 在例6.1程序基础上作一些修改。定义Point(点)类,由Point类派生出Circle(圆)类,再由Circle类派生出Cylinder(圆柱体)类。将类的定义部分分别作为3个头文件,对它们的成员函数的声明部分分别作为3个源文件(.cpp文件),在主函数中用#include命令把它们包含进来,形成一个完整的程序,并上机运行。 (1)编程要求

程序要求用多文件结构来完成。

(2)思考题

1)什么是多态性?为什么说它是面向对象程序设计的一个重要机制?

答:多态性是指具有不同功能的函数可以用同一个函数名,这样就可以用一个函

数名调用不同内容的函数。 因为C++程序设计中能够实现多态性,并可以设计和实现一个易于扩展的系统。

2)在你编写的程序中是否存在多态性的问题?如何去理解多态性的问题?

答:存在。例如在Cylinder类中定义了area函数,它与Circle类中的area函数同名。多态性是指具有不同功能的函数可以用同一个函数名,这样就可以用一个函数名调用不同内容的函数。使程序变得简单了,增加了其可操作性。

题2(6-4) 写一个程序,定义抽象基类Shape,由它派生出3个派生类: Circle(圆形)、Rectangle(矩形)、Triangle(三角形),用一个函数printArea分别输出以上三者的面积,3个图形的数据在定义对象时给定。 (1)编程要求

程序要求用多文件结构来完成。

(2) 思考题

1)该程序利用了虚函数?为什么要定义虚函数?它与动态联编有何关系?

答: 利用了。在同一类中不能定义两个名字,参数,类型都相同的函数,否则就

是重复定义,虽然在类的继承层次结构中可以出现,但不是很方便。而虚函数允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。

2)根据程序说明什么是纯虚函数?抽象类在程序中起什么作用?

答: 虚函数就是在声明虚函数时被“初始化”为0的函数。

作用:作为一个类族的共同基类,或者说,为一个类族提供一个公共接口。

实验中的问题:

1. 单独构成文件时,文件名和主函数不一致,造成编译错误;由于程序很长,在编写

时总是缺少一些标点,括号等。

2. 在规定字符类型时忽略了其一致性。实验中float与double类型的强制转换。

小结:

将一个程序分成多个文件,方便了程序编译,可以多次重复调用,节省时间。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- axer.cn 版权所有 湘ICP备2023022495号-12

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务