实验六 多态性和虚函数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六多态性和虚函数
一、实验目的
1、了解多态性的概念。
2、了解虚函数的作用及其使用方法。
3、了解静态关联和动态关联的概念和用法。
4、了解纯虚函数和抽象类的概念和用法。
二、实验要求
1、分析程序运行结果,掌握虚函数的使用。
程序一:
#include
class ONE
{ public:
virtual void f(){cout<<"l"< }; class TWO:public ONE { public: TWO(){cout<<"2"< }; class THREE:public TWO { public: virtual void f(){TWO::f(); cout<<"3";} }; void main() { ONE aa, *p; TWO bb; THREE cc; p = &cc; p->f(); } 程序二: #include class Base { public: virtual void fn() { cout <<"In Base Class\n";} }; class SubClass :public Base { public: virtual void fn(){ cout <<"In Sub Class\n"; } }; void main() { Base bc,*p; SubClass sc; p=&bc; p->fn(); p=≻ p->fn(); } 2、实现一个类A,在A中有两个私有的整型变量a和b,定义构造函数对a和b进行初始化,并实现成员函数geta()取得a的值和getb()取b的值。实现类B从A继承,覆盖geta(),使其返回a的2倍。主函数中声明类B对象,调用类B中的geta()并将结果输出。 3、声明抽象基类Shape,由它派生出3个派生类:Cirle(圆形)、Rectangle(矩形)、Triangle (三角形),用一个函数printArea分别输出以上三者的面积,3个图形的数据在定义对象是给定。