组合类的构造函数

时间:2021-12-21 19:28:34
//含有对象成员的组合类
//定义point 类表示平面中的一个点,定义组合类line,该类含有两个point 类的对象p1,p2
//表示平面中的两个点,用line 类计算两点之间的距离

# include <iostream>
# include <cmath>
using namespace std;

class Point {
    public:
        Point (int xx=0,int yy=0){
            X=xx;
            Y=yy;
        }
        Point (Point &p);
        int GetX(){
            return X;
        }
        int GetY(){
            return Y;
        }
        private:
            int X,Y;
};
Point ::Point (Point &p){
    X=p.X;
    Y=p.Y;
}
class Line {
    public:
        Line(Point xp1,Point xp2);
        Line(Line &l);
        double GetLen(){
            return len;
        }
    private:
        Point p1,p2;
        double len;
};
Line::Line(Point xp1,Point xp2):p1(xp1),p2(xp2){
    double deltx=double(p1.GetX()-p2.GetX());
    double delty=double(p1.GetY()-p2.GetY());
    len=sqrt(deltx*deltx+delty*delty);
}
Line::Line (Line &l):p1(l.p1),p2(l.p2),len(l.len){
}
int main(){
    Point myp1(1,1),myp2(4,5);
    Line l1(myp1,myp2);
    Line l2(l1);
    cout<<"The length of the line1 is"<<endl;
    cout<<l1.GetLen()<<endl;
    cout<<"The length of the line2 is"<<endl;
    cout<<l2.GetLen()<<endl;
    return 0;
}