早教吧作业答案频道 -->其他-->
C++类的继承声明一个Shape(形状)基类,它有两个派生类:Circle(圆)和Square(正方形),要求:(1)根据给出的圆心坐标和半径计算圆的面积;(2)根据给出的正方形中心坐标和一个顶点
题目详情
C++类的继承
声明一个Shape(形状)基类,它有两个派生类:Circle(圆)和Square(正方形),要求:(1)根据给出的圆心坐标和半径计算圆的面积;(2)根据给出的正方形中心坐标和一个顶点坐标计算正方形的面积。
求代码?
声明一个Shape(形状)基类,它有两个派生类:Circle(圆)和Square(正方形),要求:(1)根据给出的圆心坐标和半径计算圆的面积;(2)根据给出的正方形中心坐标和一个顶点坐标计算正方形的面积。
求代码?
▼优质解答
答案和解析
可执行程序,希望对你有帮助
#include
#include
using namespace std;
class Shape
{
public:
Shape(){}
~Shape(){}
//纯虚函数
virtual float GetArea() const=0;
};
class Circle : public Shape
{
public:
Circle(float sz):r(sz)
{}
~Circle(){}
float GetArea()const;
private:
//半径
float r;
};
//圆只用半径就可以计算面积了
float Circle::GetArea()const
{
const float pi=3.1415926f;
return pi*r*r;
}
class Square : public Shape
{
public:
Square(float x1,float y1,float x2,float y2)
{
cx=x1;
cy=y1;
px=x2;
py=y2;
}
~Square(){}
float GetArea()const;
private:
//中心点
float cx;
float cy;
//顶点
float px;
float py;
};
//正方形面积=对角线乘机的一半
float Square::GetArea()const
{
return powf(2*sqrt((cx-px)*(cx-px)+(cy-py)*(cy-py)),2)/2;
}
int main()
{
Circle c(10.0);
Square s(10.0,10.0,4.0,4.0);
cout< cout< return 0;
}
#include
#include
using namespace std;
class Shape
{
public:
Shape(){}
~Shape(){}
//纯虚函数
virtual float GetArea() const=0;
};
class Circle : public Shape
{
public:
Circle(float sz):r(sz)
{}
~Circle(){}
float GetArea()const;
private:
//半径
float r;
};
//圆只用半径就可以计算面积了
float Circle::GetArea()const
{
const float pi=3.1415926f;
return pi*r*r;
}
class Square : public Shape
{
public:
Square(float x1,float y1,float x2,float y2)
{
cx=x1;
cy=y1;
px=x2;
py=y2;
}
~Square(){}
float GetArea()const;
private:
//中心点
float cx;
float cy;
//顶点
float px;
float py;
};
//正方形面积=对角线乘机的一半
float Square::GetArea()const
{
return powf(2*sqrt((cx-px)*(cx-px)+(cy-py)*(cy-py)),2)/2;
}
int main()
{
Circle c(10.0);
Square s(10.0,10.0,4.0,4.0);
cout< cout< return 0;
}
看了 C++类的继承声明一个Sha...的网友还看了以下:
一个圆柱底面积是60平方cm,把他削成一个最大的圆锥,削去的部分体积是200立方cm,这则这个圆锥 2020-05-13 …
一道工程电磁场的题求解磁导率为μ,半径为α的无限长导磁煤质圆柱,其中心有无限长的线电流I,圆柱外是 2020-06-02 …
已知圆O1与圆O2相交于A,B两点,过A点的割线分别交两圆与D,F点,过点B的割线分别交两圆于H, 2020-06-03 …
在平面直角坐标系xOy中,椭圆C的中心为原点,焦点F1,F2在x轴上,离心率为.过F1的直线交椭圆 2020-06-21 …
在平面直角坐标系xOy中,椭圆C的中心为原点,焦点F1,F2在x轴上,离心率为12.过F1的直线交 2020-06-21 …
(2014•佛山二模)如图所示,在水平地面上有一高H=0.8m、半径r=0.6m的光滑水平圆台,在 2020-07-21 …
三角形abc的三个顶点在圆上,其中高ad,bf相交于h,ad的延长线交圆于e点,求证dh=de 2020-07-30 …
如图所示,已知:四边形ABCD有一个外接圆和一个内切圆,且这两个圆是同心圆,其中内切圆⊙O与边AB 2020-08-01 …
已知椭圆E的中心在坐标原点O,两个焦点分别为A(-1,0),B(1,0),一个顶点为H(2,0). 2020-08-02 …
如图所示,小球A在光滑的半径为R的圆形槽内做匀速圆周运动,当它运动到图中的a点时,在圆形槽中心O点正 2020-12-03 …