实验8 多态性 下载本文

内容发布更新时间 : 2024/6/16 23:34:46星期一 下面是文章的全部内容请认真阅读。

实验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 using namespace std; #define pi 3.1415 class graph { public:

};

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.绘制相应的类图。