早教吧作业答案频道 -->其他-->
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...的网友还看了以下:
加数的个数nS12=1x222+4=6=2x332+4+6=12=3x442+4+6+8=20=4 2020-04-07 …
like加s和没加s有什么区别加s后面的动词要不要加ing没加s的动词要不要加ing 2020-05-13 …
1道初三数学题目数据X1X2X3X4X5与数据Y1Y2Y3Y4Y5符合X1+Y1=X2+Y2=X3 2020-05-14 …
英语中什么词后面要加S?今天自学英语,上面说my day starts pretty early. 2020-05-16 …
It was a three-hour journey 中的hour为什么不加S,不是复数要加S的 2020-05-17 …
什么后面加S啊,我给忘了,像是复数后面加S,还有哪也要加S的? 2020-05-17 …
在某并行数据库中,有关系R(A,B)和S(B,C),其中R包含1000000行数据,S包含100行数 2020-05-23 …
下列叙述中正确的是()。A.如果事务T获得数据项S的共享锁,则T可读S又可写SB.如果事务T获得数据 2020-05-24 …
B/S结构中客户访问数据库与C/S结构中的客户访问数据库的区别在于(65)。A.B/S结构中Web服 2020-05-26 …
American和european等国家的词汇那些要加s的那些不要具体怎么加呢 2020-06-17 …