c++继承多态(建立基类 area_cl 的两个派生类 rectangle 与 isosceles)

要求:
(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;
}


版权声明:本文为Kerryliuyue原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。