c++:由抽象基类派生出 圆类 三角形 正方形 矩形 梯形 五类,分别求其面积

#include <iostream>
using namespace std;
class Shape
{
public:
    virtual void display()const=0;
};
class Circle:public Shape
{
public:
    Circle(double x) : a(x){}
    void display() const;
private:
    double a;
};
void Circle::display() const
{
    cout<<3.14159*a*a<<endl;
}
class Squre:public Shape
{
public:
    Squre (double x) : b(x){}
    void display() const;
private:
    double b;
};
void Squre::display() const
{
    cout<<b*b<<endl;
}
class Rectangle:public Shape
{
public:
    Rectangle (double x,double y) : c(x),d(y){}
    void display() const;
private:
    double c,d;
};
void Rectangle::display() const
{
    cout<<c*d<<endl;
}
class Trapezoid:public Shape
{
public:
    Trapezoid (double x,double y,double z) : e(x),f(y),h(z) {}
    void display() const;
private:
    double e,f,h;
};
void Trapezoid::display() const
{
    cout<<(e+f)*h/2<<endl;
}
class Triangle:public Shape
{
public:
    Triangle (double x,double y) : a(x),b(y) {}
    void display() const;
private:
    double a,b;
};
void Triangle::display() const
{
    cout<<(a+b)/2<<endl;
}
int main()
{
    Circle p(5.4);
    p.display();
    Squre x(5.4);
    x.display();
    Rectangle y(1,2);
    y.display();
    Trapezoid z(1,2,3);
    z.display();
    Triangle l(1,2);
    l.display();
    return 0;
}

猜你喜欢

转载自blog.csdn.net/soul778888/article/details/80660302