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