继承,虚拟函数
#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;
}
全部评论
相关推荐
点赞 评论 收藏
分享
03-05 13:31
郑州轻工业大学 Java
在刷代码的我很纠结:这是我看到的牛客写的比较好的简历,你看他结果有数据量化,能够帮hr快速识别好坏,你的落脚点太多是在执行层面,但hr更想看到的不止你的专业能力还有其他隐形因素比如说统筹力,抗压力等等
查看图片 点赞 评论 收藏
分享