C++编程题,高手请进!(很急)

1. 下面是线类的声明文件,请你先设计出Point类,然后补充该线类的实现,并使用给定的测试程序进行测试。
class Line
{
Point p1, p2; //线段的两个端点
int len; //线段长度
public:
Line()
{
len=0;cout<<"Line默认构造函数调用"<<endl;
}
Line(Point& pp1,Point& pp2); //构造函数
Line(int x1,int y1,int x2,int y2); //构造函数
Line(Line& l1);
int getlen(){return len;}
~Line(){}
};

第1个回答  2010-07-08
#include<cmath>
#include<iostream>
using namespace std;
struct Point{int x,y;};

class Line{
private:
Point p1,p2;//线段的两个端点
int len;//线段长度
void calc(void){int x=p1.x-p2.x;int y=p1.y-p2.y;len=x*x+y*y;len=sqrt(len);}
public:
Line(){p1.x=0;p1.y=0;p2.x=0;p2.y=0;len=0;cout<<"Line()默认构造函数调用"<<endl;}
Line(Point&pp1,Point&pp2){cout<<"Line(p1,p2)构造函数调用"<<endl;p1=pp1;p2=pp2;calc();}
Line(int x1,int y1,int x2,int y2){cout<<"Line(x1,y1,x2,y2)构造函数调用"<<endl;p1.x=x1;p1.y=y1;p2.x=x2;p2.y=y2;calc();}
Line(Line&l1){this->p1=l1.p1;this->p2=l1.p2;this->len=l1.len;}
int getlen(){return len;}
~Line(){}
};

int main(void)
{
Point p1={0,0};
Point p2={3,4};
Line l1;
Line l2(p1, p2);
Line l3(0,0,3,4);
Line l4(l3);
cout << "l1=" << l1.getlen() << endl;
cout << "l2=" << l2.getlen() << endl;
cout << "l3=" << l3.getlen() << endl;
cout << "l4=" << l4.getlen() << endl;
return 0;
}
/*测试结果:
Line()默认构造函数调用
Line(p1,p2)构造函数调用
Line(x1,y1,x2,y2)构造函数调用
l1=0
l2=5
l3=5
l4=5
*/
相似回答
大家正在搜