接口与继承

来源:互联网 发布:汽车里程表调校软件 编辑:程序博客网 时间:2024/06/06 01:14
#include<iostream>#define PI 3.1415using namespace std;class Shape{ public:       Shape() {cout<<"调用构造函数Shape"<<endl;}       ~Shape() {cout<<"调用析构函数Shape"<<endl;}       virtual double Girth()=0;       virtual double Area()=0;};class Rectangle: public Shape{private:       double len;       double wide;public:       Rectangle(double l=0,double w=0) {len=l; wide=w; cout<<"调用构造函数Rectangle"<<endl;}       void SetRectangle(double l=0,double w=0) {len=l; wide=w;}       ~Rectangle(){cout<<"调用析构函数Rectangle"<<endl;}       double Girth() {return (len+wide)*2;}       double Area() {return len*wide;}};class Circle:public Shape{private:        double r;public:       Circle(double radius=0) {r=radius; cout<<"调用构造函数Circle"<<endl;}    void SetCircle(double radius=0) {r=radius;}       ~Circle(){cout<<"调用析构函数Circle"<<endl;}       double Girth() {return 2*PI*r;}       double Area() {return PI*r*r;}};class Square:public Rectangle{public:       Square(double x=0) {Rectangle(x,x); cout<<"调用构造函数Square"<<endl;}    void SetSquare(double x=0) {SetRectangle(x,x);}       ~Square(){cout<<"调用析构函数Square"<<endl;}};int main(){       Rectangle b;       Circle c;       Square d;       double x,y,m,n;       cout<<endl<<"请输入矩形长和宽(用空格隔开):"<<endl;       cin>>x>>y;       b.SetRectangle(x,y);       cout<<"矩形周长为:"<<b.Girth()<<endl;       cout<<"矩形面积为:"<<b.Area()<<endl;    cout<<endl<<"请输入圆形的半径:"<<endl;       cin>>m;       c.SetCircle(m);       cout<<"圆形周长为:"<<c.Girth()<<endl;       cout<<"圆形面积为:"<<c.Area()<<endl;    cout<<endl<<"请输入正方形的边长:"<<endl;       cin>>n;       d.SetSquare(n);       cout<<"正方形周长为:"<<d.Girth()<<endl;       cout<<"圆形面积为:"<<d.Area()<<endl;       system("pause");       cout<<endl;       return 0;}
0 0
原创粉丝点击