//定义点point类
class point
{
public:
point(int xx=0,int yy=0){x=xx;y=yy;} //构造函数
point(point &p); //拷贝构造函数
int getx(){return x;} //获得点的X坐标
int gety(){return y;}
private:
int x,y;
};
point::point(point &p)
{
x=p.x;
y=p.y;
}
//定义组合类line,其数据成员包含2个point对象和一个double类型数据表示线段长度
class line
{
public:
line(point xp1,point xp2); //构造函数
line(line &l1); //拷贝构造函数
double getlen(){return len;} //获得线段的长度
private:
point p1,p2;
double len;
};
line::line (const point &xp1,const point &xp2):p1(xp1),p2(xp2) //{
double a=double(p1.getx()-p2.getx());
double b=double(p1.gety()-p2.gety());
len=sqrt(a*a+b*b);//计算长度
}
等价与
line::line (point& xp1, point& xp2){
p1 = xp1;
p2 = xp2;
double a=double(p1.getx()-p2.getx());
double b=double(p1.gety()-p2.gety());
len=sqrt(a*a+b*b);//计算长度
}