继承,虚拟函数
#include<bits/stdc++.h>
using namespace std;
class shape{
protected:
int x,y;
shape(int x = 0,int y = 0):x(x),y(y){}
virtual ~shape(){}
virtual double GetArea() = 0;// 纯虚函数,用于计算面积
};
class Rectangle : public shape{
protected:
int Length,Width;
public:
Rectangle(int Length,int Width):Length(Length),Width(Width){}
double GetArea() override{//表示该函数是重写基类的虚函数
return Length*Width;
}
};
class Circle : public shape{
protected:
int radius;
public:
Circle(int radius):radius(radius){}
double GetArea() override{
return 3.14*radius*radius;
}
};
class Square : public Rectangle{
public:
Square(int side) : Rectangle(side,side){}
};
int main(){
int Length,Width,radius,side;
cin>>Length>>Width;
Rectangle a(Length,Width);
cout<<a.GetArea()<<endl;
cin>>radius;
Circle b(radius);
cout<<b.GetArea()<<endl;
cin>>side;
Square c(side);
cout<<c.GetArea()<<endl;
return 0;
}
using namespace std;
class shape{
protected:
int x,y;
shape(int x = 0,int y = 0):x(x),y(y){}
virtual ~shape(){}
virtual double GetArea() = 0;// 纯虚函数,用于计算面积
};
class Rectangle : public shape{
protected:
int Length,Width;
public:
Rectangle(int Length,int Width):Length(Length),Width(Width){}
double GetArea() override{//表示该函数是重写基类的虚函数
return Length*Width;
}
};
class Circle : public shape{
protected:
int radius;
public:
Circle(int radius):radius(radius){}
double GetArea() override{
return 3.14*radius*radius;
}
};
class Square : public Rectangle{
public:
Square(int side) : Rectangle(side,side){}
};
int main(){
int Length,Width,radius,side;
cin>>Length>>Width;
Rectangle a(Length,Width);
cout<<a.GetArea()<<endl;
cin>>radius;
Circle b(radius);
cout<<b.GetArea()<<endl;
cin>>side;
Square c(side);
cout<<c.GetArea()<<endl;
return 0;
}
全部评论
相关推荐
点赞 评论 收藏
分享
06-17 00:26
门头沟学院 Java 
点赞 评论 收藏
分享
05-15 13:31
杭州电子科技大学 Java 点赞 评论 收藏
分享