实验六多态性和虚函数
一、实验目的
1、了解多态性的概念。
2、了解虚函数的作用及其使用方法。
3、了解静态关联和动态关联的概念和用法。
4、了解纯虚函数和抽象类的概念和用法。
二、实验要求
1、分析程序运行结果,掌握虚函数的使用。
程序一:
#include <iostream.h>
class ONE
{ public:
virtual void f(){cout<<"l"<<endl;}
};
class TWO:public ONE
{ public:
TWO(){cout<<"2"<<endl;}
};
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<iostream.h>
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个图形的数据在定义对象是给定。