C++ 求两点之间距离遇到的问题?

来源:百度知道 编辑:UC知道 时间:2024/06/02 20:30:20
我按照书本上输入求两点 p1(1,1,)和p2(4,5)间的距离,程序如下

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

class Point // 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 // Line类的声明
{
public:
Line(Point xp1,Point xp2); //构造函数
Line(Line&);
double GetLen() {return len;}
private:
Point p1,p2; // p1,p2为Point类的对象
double len;
};

//组合类的构造函数:
Line::Line(Point xp1,Point xp2):p1(xp1),p2(xp2) //定义:类名::类名(形参表):内嵌对象1(形参表),内嵌对象2(形参表) 内嵌了Point类中的对象p1,p2
{
cout<<"Line构造函数被调用"<<endl;
double x=double(p1.Ge

在Line的构造函数里:

len=sqrt(x*x+y+y); //平方根

应该为:len=sqrt(x*x+y*y); //平方根

//组合类的构造函数:
Line::Line(Point xp1,Point xp2):p1(xp1),p2(xp2) //定义:类名::类名(形参表):内嵌对象1(形参表),内嵌对象2(形参表) 内嵌了Point类中的对象p1,p2
{
cout<<"Line构造函数被调用"<<endl;
double x=double(p1.GetX()-p2.GetX());
double y=double(p1.GetY()-p2.GetY());
len=sqrt(x*x+y+y); //平方根 ,//这错了
}

应该是 len = sqrt(x*x+y*y);