实验8 多态性
实验目的及要求
综合运用类的多态性以及虚函数实现动态多态性的方法,设计并实现类。
实验内容
利用虚函数实现的多态性来求四种几何图形的面积。这四种几何图形是:三角形、矩形、正方形和圆。几何图形的类型可以通过构造函数或通过成员函数来设置。
主要仪器设备
电脑一台,安装Visual C++ 6.0
实验步骤
1.分析问题:确定四种图形的面积计算公式。
2.运行Visual C++ 6.0,创建Win32 Console Application。 3.使用Insert | Class Wizard…创建一个“纯”的虚基类。
4.在Class View的类名称上点击右键,从弹出菜单中选择Add Member Function…和Add Member Variable…,设计虚基类的成员函数。
5.使用Insert | Class Wizard…创建多态类。 6.在各个多态类中编写具体实现的代码。
7.添加一个main.cpp文件,编写主函数,测试所设计各个类的功能。 8.编译、调试、运行程序。 参考代码如下: #include
};
virtual double area()=0;
class triangle:public graph { public:
triangle(double da,double hi):dase(da),heigth(hi){} double area() {return heigth*dase/2;} private: };
class rectangle:public graph { public: };
class Square:public graph { public: };
class circle:public graph { public:
circle(double r):redius(r) {}
double area() {return pi*redius*redius;} private:
double redius;
Square(double i):width(i){}
double area() {return width*width;} double width;
rectangle(double h,double w):longt(h),width(w){} double area() { return longt*width;} double longt; double width; double dase; double heigth;
private:
private:
};
void main() {
double a,b,c,d;
cout<<\
cout<<\:\
cin>>a>>b; triangle x(a,b);
cout<<\:\cin>>b>>c; rectangle y(b,c);
cout<<\:\cin>>c; Square z(c);
cout<<\:\cin>>d; circle m(d);
cout<<\cout<<\cout<<\cout<<\cout<<\}
注意事项
仅仅包含“纯”虚函数的抽象类是一个不完全的类,相当于“接口”,因此不需要在main.cpp中测试这个类。
实验报告要求
1.打印设计的程序及运行结果 2.绘制相应的类图。