早教吧作业答案频道 -->其他-->
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...的网友还看了以下:
在一个坐标系中,点p与点p`关于Y轴对称,已知点p(-sin30度,cos30度)求点p`的坐标: 2020-05-04 …
A(-4,0);B(2,4)①求线段AB与y轴的交点点C的坐标.②点P在X轴,S△ABP=20,求 2020-06-14 …
已知圆M的方程为x^2+(y-2)^2=1,直线l的方程为x-2y=0,点P在直线l上,过P点作圆 2020-06-14 …
在平面直角坐标系xoy中,已知圆p在x轴上截得线段长为2√2,在y轴上截得线段长为2√31,求圆心 2020-06-22 …
在直角坐标系xOy中,圆C的方程为(x-1)2+y2=1.以O为极点,x轴的非负半轴为极轴建立极坐 2020-07-08 …
1.圆心在直线5X-3Y-8=0上的圆与两坐标轴相切,求此圆的方程2.已知圆C(X-1)的平方+( 2020-07-23 …
已知圆C的圆心坐标原点,且过点M(1,根号3)问:(1)求圆C的方程(2)已知点P是圆C上的动点, 2020-07-26 …
已知测量角怎么求坐标方位角?怎么样区分左角,右角? 2020-07-29 …
在平面直角坐标系xOy中,点P(t2,2t)(t为参数),若以原点O为原点,x轴的正半轴为极轴建立 2020-07-31 …
已知闭合导线的角度观测值(右角),怎么求坐标方位角? 2020-12-19 …