为了测试以上Circle类的定义,可以写出下面的主函数: int main() {Circ1ec(3.5,6.4,5.2); /建立Circle类对象c,并给定圆心坐标和半径 cout<<"original circle:\\nx="<<c.getx()<<" y="<<c.gety()<<",r="<<c.getRadius() <<"area="<<c.area()<<endl; //输出圆心坐标、半径和面积 c.setRadius(7.5);/设置半径值 c.setPoint(5,5);//设置圆心坐标值x,y cout<<"new circle:\\n"<<c; /用重载运算符“<”输出圆对象的信息 Point&pRef=c;/pRef是Point类的引用变量,被c初始化 cout<<"pRef:"<<pRef; //输出pRef的信息 return 0;
为了测试以上Circle类的定义,可以写出下面的主函数: int main( ) {Circle c(3.5,6.4,5.2); //建立Circle类对象c,并给定圆心坐标和半径 cout<<″original circle:\\nx=″<<c.getX()<<″, y=″<<c.getY()<<″, r=″<<c.getRadius( ) <<″, area=″<<c.area( )<<endl; //输出圆心坐标、半径和面积 c.setRadius(7.5); //设置半径值 c.setPoint(5,5); //设置圆心坐标值x,y cout<<″new circle:\\n″<<c; //用重载运算符“<<”输出圆对象的信息 Point &pRef=c; //pRef是Point类的引用变量,被c初始化 cout<<″pRef:″<<pRef; //输出pRef的信息 return 0; }
运行结果为original circles: (输出原来的圆的数据) x=3.5,y=6.4,=5.2,area=84.9486 new circle: (输出修改后的圆的数据) Center=-[5,5,r=7.5,area=176.714 pRef:(5,5] 输出圆的圆心“点”的数据)
运行结果为original circle: (输出原来的圆的数据) x=3.5, y=6.4, r=5.2, area=84.9486 new circle: (输出修改后的圆的数据) Center=[5,5], r=7.5, area=176.714 pRef:[5,5] (输出圆的圆心“点”的数据)
(3)声明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;//读取圆柱高 float area()const;/计算圆表面积 float volume()const;/计算圆柱体积friend ostream&operator<<(ostream&,const Cylinder&); /重载运算符“<” protected: float height;//圆柱高 };
(3) 声明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; //读取圆柱高 float 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()<<end1; return output;
//定义构造函数 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;}
int main() {Cylinder cy1(3.5,6.4,5.2,10): /定义Cylinder类对象cyl cout<<"\\noriginalcylinder:\\nx="<<cy1.getx(); cout<<"y="<<cy1.getY()<",r="<<cy1.getRadius(); cout<<",h="<<cyl.getHeight()<<"\\narea="; cout<<cyl.area()<",volume="<<cy1.volume()<<endl; /用系统定义的运算符“<”输出cy1的数据 cyl.setHeight(15);/设置圆柱高 cyl.setRadius(7.5);/设置圆半径 cyl.setPoint(5,5);/设置圆心坐标值x,y cout<<"\\nnew cylinder:\\n"<<cy1; /用重载运算符“<”输出cyl的数据 Point&pRef=cyl;/pRef是Point类对象的引用变量
int main( ) {Cylinder cy1(3.5,6.4,5.2,10); //定义Cylinder类对象cy1 cout<<″\\noriginalcylinder:\\nx=″<<cy1.getX( ); cout<<″y=″<<cy1.getY( )<<″,r=″<<cy1.getRadius( ); cout<<″,h=″<<cy1.getHeight( )<<″\\narea=″; cout<<cy1.area()<<″,volume=″<<cy1.volume()<<endl; //用系统定义的运算符“<<”输出cy1的数据 cy1.setHeight(15); //设置圆柱高 cy1.setRadius(7.5); //设置圆半径 cy1.setPoint(5,5); //设置圆心坐标值x,y cout<<″\\nnew cylinder:\\n″<<cy1; //用重载运算符“<<”输出cy1的数据 Point &pRef=cy1; //pRef是Point类对象的引用变量