10.9
一 问题描述
以点类Point及平面图形类Plane为基类公有派生圆类Circle,再以圆类Circle及立体图形类Solid为基类公有派生圆锥类Cone,main(void)函数完成对圆锥类Cone的测试。
二 代码
#include<math.h>
class·Circle:public·Point,public·Plane
{
private:
·const·double·PI=3.14159;
·double·radius;
public:
Circle(double·a=0,·double·b=0,·double·c=0);
Circle(const·Circle·&);
~Circle();
void·setR(double);
double·getR()const;
void·show()const;
double·area()const;
double·length()const;
};
Circle::Circle(double·a,·double·b,·double·c):Point(a,b)
{
radius=c;
cout<<"Circle·Constructor·run"<<endl;
}
Circle::Circle(const·Circle·&c):Point(c)
{
radius=c.radius;
cout<<"Circle·CopyConstructor·run"<<endl;
}
Circle::~Circle()
{
cout<<"Circle·Destructor·run"<<endl;
}
void·Circle::setR(double·a)
{
radius=a;
}
double·Circle::getR()const
{
return·radius;
}
void·Circle::show()const
{
cout<<"Circle(Point(X=";
cout<<getX()<<",Y="<<getY();
cout<<"),Radius="<<radius<<")"<<endl;
}
double·Circle::area()const
{
return·PI*radius*radius;
}
double·Circle::length()const
{
return·2*PI*radius;
}
class·Cone:public·Circle,public·Solid
{
private:
double·height;
public:
Cone(double·a=0,·double·b=0,double·c=0,double·h=0);
Cone(const·Cone·&);
~Cone();
void·setH(double);
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步