早教吧 育儿知识 作业答案 考试题库 百科 知识分享

用C++类中的继承?声明一个Shape(形状)基类,它有两个派生类:Circle(圆)和Square(正方形),要求:(声明一个Shape(形状)基类,它有两个派生类:Circle(圆)和Square(正方形),要求

题目详情
用C++类中的继承?声明一个Shape(形状)基类,它有两个派生类:Circle(圆)和Square(正方形),要求:(
声明一个Shape(形状)基类,它有两个派生类:Circle(圆)和Square(正方形),要求:(1)根据给出的圆心坐标和半径计算圆的面积;(2)根据给出的正方形中心坐标和一个顶点坐标计算正方形的面积。
求代码?
▼优质解答
答案和解析
#include
#include
const double PI=3.14;
using namespace std;
class Shape
{
public:
Shape(){};
virtual double area()const{return 0.0;}
};
class Circle:public Shape
{
public:
Circle(double myr){R=myr;}
virtual double area(){return PI*R*R;}
protected:
double R;
};
class Square:public Shape
{
public:
Square(double x,double y,double a,double b)
{
X=x;Y=y;
A=a;B=b;
}
virtual double area()
{
L=sqrt((X-A)*(X-A)+(Y-B)*(Y-B));
return (L*L);
}
protected:
double X,Y,A,B,L;
};
void func(Shape &p)
{
cout< }
void main()
{
double k,x,y,m,n;
cout< cin>>k;
Circle c(k);
cout< func(c);
cout< cin>>x>>y>>m>>n;
Square s(x,y,m,n);
cout< func(s);
}

大致的代码就是这样了 可以运行 但是没有仔细检测过
你自己检测下吧 希望对你有帮助