1 #include <iostream>
2
3 /* run this program using the console pauser or add your own getch, system("pause") or input loop */
4 using namespace std;
5 class Point
6 {
7 public:
8 Point(float x=0,float y=0);
9 void setPoint(float,float);
10 float getX()const{return x;}
11 float getY()const{return y;}
12 friend ostream&operator<<(ostream&,const Point&);
13 protected:
14 float x,y;
15 };
16
17 Point::Point(float a,float b)
18 {
19 x=a;
20 y=b;
21 }
22
23 void Point::setPoint(float a,float b)
24 {
25 x=a;
26 y=b;
27 }
28 ostream&operator<<(ostream&output,const Point &p)
29 {
30 output<<"["<<p.x<<","<<p.y<<"]"<<endl;
31 return output;
32 }
33 class Circle:public Point
34 {
35 public:
36 Circle(float x=0,float y=0,float r=0);
37 void setRadius(float);
38 float getRadius()const;
39 float area()const;
40 friend ostream &operator<<(ostream&,const Circle&);
41 private:
42 float radius;
43 };
44
45 Circle::Circle(float a,float b,float r):Point(a,b),radius(r){
46
47 }
48 void Circle::setRadius(float r)
49 {
50 radius=r;
51 }
52 float Circle::getRadius()const{return radius;}
53
54 float Circle::area()const
55 {
56 return 3.14159*radius*radius;
57 }
58
59 ostream&operator<<(ostream &output,const Circle &c)
60 {
61 output<<"Center=["<<c.x<<","<<c.y<<"],r="<<c.radius<<",area="<<c.area()<<endl;
62 return output;
63 }
64 int main(int argc, char** argv) {
65 Circle c(3.5,6.4,5.2);
66 cout<<"original circle:\nx="<<c.getX()<<",y="<<c.getY()<<",r="<<c.getRadius()<<",area="<<c.area()<<endl;
67 c.setRadius(7.5);
68 c.setPoint(5,5);
69 cout<<"new circle:\n"<<c;
70 Point &pRef=c;
71 cout <<"pRef:"<<pRef;
72 return 0;
73 }