第(4)部分
- //声明Cylinder类 class Cylinder:public Circle
- { public:
- Cylinder (float x=0,float y=0,float r=0,float h=0); void setHeight(float );
- virtual float area( )const; virtual float volume( )const;
- virtual void shapeName( )const { cout<<"Cylinder:";
- }//对虚函数进行再定义 friend ostream& operator <<(ostream&,const Cylinder&);
- protected: float height;
- }; //定义Cylinder类成员函数
- 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::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<<"["<<cy.x<<","<<cy.y<<"], r="<<cy.radius<<", h="<<cy.height;
- return output; }
Cylinder类是从Circle类派生的。由于圆柱体有表面积和体积,所以要对area和 volume函数重新定义。虚函数shapeName也需要重新定义。此外,Cylinder类还有自已 的成员函数setHeight和数据成员radius。
第(5)部分










