给出下面的基类
class area_cl{
protected:
double height;
double width;
public:
area_cl(double r,double s)
{height=r,width=s;}
virtual double area()=0;
};
要求:
(1)建立基类area_cl的两个派生类Rectangle与Triangle,让每一个派生类都包含一个函数area(),分别用来返回矩形与三角形的面积。用构造函数对height与width进行初始化。
(2)写出主程序,用来求height和width分别为10.0与5.0的矩形面积,以及求height与width分别为4.0与6.0的三角形面积。
(3)要求通过使用基类指针访问虚函数的方法(即运行时的多态性)分别求出矩形和三角形的面积。
#include<iostream>
using namespace std;
class area_cl{
protected:
double height;
double width;
public:
area_cl(double r,double s)
{height=r,width=s;}
virtual double area()=0;
};
class Rectangle:public area_cl{
public:
Rectangle(double r,double s):area_cl(r,s)
{}
double area()
{return height*width;}
};
class Triangle:public area_cl
{
public:
Triangle(double r,double s):area_cl(r,s)
{}
double area()
{return height*width/2;}
};
int main()
{
area_cl *p;
Rectangle rect(10.0,5.0);
Triangle tri(4.0,6.0);
p=▭
cout<<"矩形的面积:"<<p->area()<<endl;
p=&tri;
cout<<"三角形的面积"<<p->area()<<endl;
return 0;
}