#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; cout<<"Point拷贝构造函数被调用了"<<endl; } //类的组合 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){ cout<<"Line的构造函数被调用了"<<endl; double x=double(p1.getX()-p2.getX()); double y=double(p1.getY()-p2.getY()); len=sqrt(x*x+y*y); } Line::Line(Line &L):p1(L.p1),p2(L.p2){ cout<<"Line的拷贝构造函数被调用了"<<endl; len=L.len; } void main(){ Point myp1(1,1),myp2(4,5); Line L1(myp1,myp2); Line L2(L1); cout<<"the length of line1 is:"<<endl; cout<<L1.getLen()<<endl; cout<<"the length of line2 is:"<<endl; cout<<L2.getLen()<<endl; }