第十一周项目5.2类组的设计

来源:互联网 发布:pdf文档剪切软件 编辑:程序博客网 时间:2024/06/04 01:31
/* *Copyright (c) 2015, 烟台大学计算机学院 *All rights reserved. *文件名称:text.cpp *作者:陈栋梁 *完成日期:2015年 5月 20日 *版本号:v1.0 * */#include <iostream>using namespace std;class Point{public:Point(double x=0,double y=0);void setPoint(double,double);double getX( ) const {return x;}double getY( ) const {return y;}friend ostream & operator<<(ostream &,const Point &);protected:double x,y;};Point::Point(double a,double b){x=a;y=b;}void Point::setPoint(double a,double b){x=a;y=b;}ostream & operator<<(ostream &output,const Point &p){output<<"["<<p.x<<","<<p.y<<"]"<<endl;return output;}class Circle:public Point{public:Circle(double x=0,double y=0,double r=0);void setRadius(double);double getRadius( ) const;double area ( ) const;friend ostream &operator<<(ostream &,const Circle &);protected:double radius;};Circle::Circle(double a,double b,double r):Point(a,b),radius(r){ }void Circle::setRadius(double r){radius=r;}double Circle::getRadius( ) const{return radius;}double Circle::area( ) const{return 3.14159*radius*radius;}ostream &operator<<(ostream &output,const Circle &c){output<<"Center=["<<c.x<<", "<<c.y<<"], r="<<c.radius<<", area="<<c.area( )<<endl;return output;}int main( ){Circle c(3.5,6.4,5.2);cout<<"original circle:\nx="<<c.getX()<<", y="<<c.getY()<<", r="<<c.getRadius( ) <<", area="<<c.area( )<<endl;c.setPoint(5,5);cout<<"new circle:\n"<<c;return 0;}


运行结果:

0 0
原创粉丝点击