65,211
社区成员
发帖
与我相关
我的任务
分享
////////////////////////////////////point.h文件///////////////////////
#include<iostream>
using namespace std;
class Point
{public:
Point(float x=0,float y=0);
void setPoint(float,float);
float getX() const {return x;}
float getY() const {return y;}
friend ostream & operator << (ostream &,const Point &);
protected:
float x,y;
};
////////////////////////////////////point.cpp文件//////////////////////
#include"point.h"
Point::Point(float a,float b)
{x=a;y=b;}
void Point::setPoint(float a, float b)
{x=a;y=b;}
ostream & operator<<(ostream & output,const Point &p)
{output<<"["<<p.x<<","<<p.y<<"]"<<endl;
return output;
}
///////////////////////////////////circle.h文件/////////////////////////
#include<iostream>
#include"point.h"
using namespace std;
class Circle:public Point
{public:
Circle(float x=0,float y=0,float r=0);
void setRadius(float);
float getRadius()const;
float area()const;
friend ostream &operator<<(ostream &,const Circle &);
protected:
float radius;
};
////////////////////////////////////circle.cpp文件///////////////////////
#include"circle.h"
Circle::Circle(float a,float b,float r):Point(a,b),radius(r){}
void Circle::setRadius(float r)
{radius=r;}
float Circle::getRadius()const{return radius;}
float 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;}
//////////////////////////////////main.cpp文件//////////////////////////////
#include<iostream>
using namespace std;
#include"point.h"
#include"circle.h"
int main()
{///////////////////////point部分
Point p(3.5,6.4);
cout<<"x="<<p.getX()<<",y="<<p.getY()<<endl;
p.setPoint(8.5,6.8);
cout<<"p(new):"<<p<<endl;
////////////////////////circle部分
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.setRadius(7.5);
c.setPoint(5,5);
cout<<"new circle:\n"<<c;
Point &pRef=c;
cout<<"pRef:"<<pRef<<endl;
return 0;
}
#ifndef POINT_H
#define POINT_H
#include<iostream>
using namespace std;
class Point
{public:
Point(float x=0,float y=0);
void setPoint(float,float);
float getX() const {return x;}
float getY() const {return y;}
friend ostream & operator << (ostream &,const Point &);
protected:
float x,y;
};
#endif