3) 声明Circle的派生类Cylinder
前面已从基类Point派生出Circle类,现在再从Circle派生出Cylinder类。
-
class Cylinder:public Circle// Cylinder是Circle的公用派生类
{
-
public:
Cylinder (float x=0,float y=0,float r=0,float h=0); //构造函数
-
void setHeight(float ); //设置圆柱高
float getHeight( )const; //读取圆柱高
-
loat area( )const; //计算圆表面积
float volume( )const; //计算圆柱体积
-
friend ostream& operator <<(ostream&,const Cylinder&); //重载运算符<<
protected:
-
float height;//圆柱高
};
-
//定义构造函数
Cylinder::Cylinder(float a,float b,float r,float h):Circle(a,b,r),height(h){}
-
//设置圆柱高
void Cylinder::setHeight(float h){height=h;}
-
//读取圆柱高
float Cylinder::getHeight( )const {return height;}
-
//计算圆表面积
float Cylinder::area( )const { return 2*Circle::area( )+2*3.14159*radius*height;}
-
//计算圆柱体积
float Cylinder::volume()const {return Circle::area()*height;}
-
ostream &operator <<(ostream &output,const Cylinder& cy)
{
-
output<<"Center=["<<cy.x<<","<<cy.y<<"],r="<<cy.radius<<",h="<<cy.height <<"narea="<<cy.area( )<<", volume="<<cy.volume( )<<endl;
return output;
-
} //重载运算符“<<”










