acm 第一套抽象基类

来源:互联网 发布:淘宝助理不能上传图片 编辑:程序博客网 时间:2024/04/30 04:16
#include<iostream>#include<iomanip>using namespace std;class Shape{public:    virtual float printArea()=0;};class Circle:public Shape{public:    Circle(float r):rad(r){}    virtual float printArea()    {        return (3.1415926*rad*rad);    }private:    float rad;};class Rectangle:public Shape{public:    Rectangle(float h,float l):high(h),longg(l){}    virtual float printArea()    {        return (high*longg);    }private:    float high;    float longg;};class Triangle:public Shape{public:    Triangle(float h,float l):high(h),longg(l){}    virtual float printArea()    {        return (high*longg/2);    }private:    float high;    float longg;};void printArea(Shape &shape){    cout<<shape.printArea()<<endl;}int main(){    float r,a,b,w,h;    cout<<fixed<<setprecision(2);    cin>>r;    Circle circle(r);    cout<<"area of circle = ";    printArea(circle);    cin>>a>>b;    Rectangle rectangle(a,b);    cout<<"area of rectangle = ";    printArea(rectangle);    cin>>w>>h;    Triangle triangle(w,h);    cout<<"area of triangle = ";    printArea(triangle);    return 0;}


运行结果:

心得体会:

用到纯虚函数和调用。

0 0