继承与派生
定义一个点类,包含 X,Y 的坐标数据成员,显示函数和计算面积的函数成
员;以点为基类派生一个圆类,增加表示半径的数据成员,重载显示和计算面积
的函数;定义一个直线类,以两个点类对象作数据成员,定义显示、求面积及长
度函数。
程序代码如下:
#include<iostream.h>
#include<math.h>
#define pi 3.14159
class point{
friend class line;
protected:
double x,y;
public:
point(){x=0;y=0;}
point(double xv,double yv){x=xv;y=yv;}
double area(){return 0;}
void show(){
cout<<"x="<<x<<' '<<"y="<<y<<endl;
}
};
class circle:public point{
double radius;
public:
circle(){x=0;y=0;radius=0;}
circle(double xv,double yv,double vv):point(xv,yv){radius=vv;}
double area(){
return pi*radius*radius;}
void show(){
cout<<"x="<<x<<' '<<"y="<<y<<"radius="<<radius<<endl;}
};
class line{
point start,end;
public:
line():start(0,0),end(0,0){}
line(double xv1,double yv1,double xv2,double
yv2):start(xv1,yv1),end(xv2,yv2){}
double getlength(){
return
sqrt((start.x-end.x)*(start.x-end.x)+(start.y-end.y)*(start.y-end.y))
;
}
double area(){return 0;}
void show(){