早教吧作业答案频道 -->其他-->
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...的网友还看了以下:
同学们献爱心捐款,明明和圆圆共捐款46元,若明明再捐5元,圆圆再捐2元,这时圆圆仍比明明多捐3元, 2020-05-16 …
已知椭圆C的左、右焦点坐标分别是(-根号2,0),(根号2,0),离心率是根号6/3,直线y=t椭 2020-05-16 …
定义一个具有多态性的基类Shape,继承以下一些类:圆Circle类(坐标点和半径构成)长方形Re 2020-05-17 …
下列说法错误的有()个,①经过点p的圆有无数个②以点P为圆心的圆有无数个③半径为3cm且经过点P圆 2020-06-09 …
概率论与数理统计里的一道证明题设本题涉及的事件均有意义,设A,B都是事件.1.已知P(A)>0,证 2020-06-18 …
已知P(AB)=P(A)+P(B)证明P(A的相反事件B的相反事件)=P(A的相反事件)+P(B的 2020-07-20 …
圆经过点P,圆心在直线上,求圆的方程一个圆经过点P(5,3),圆心在直线上X+2Y-1=0上,半径 2020-07-26 …
平面几何证明过圆O外一点A作圆的两条切线AM,AN切点为MN,L为劣弧MN上一点,过A作MN的平行 2020-07-31 …
圆C的参数方程为(θ为参数)。(1)写出圆C的普通方程,并说明其圆心坐标与半径;(2)若圆C上的点 2020-08-02 …
/*1.定义点Point类作为基类,在此基础上派生出直线Line类和圆Circle类,在Circle 2020-11-02 …