求大神改一下c++程序 求两点间距离

#include<iomanip>
#include<iostream>
#include<math.h>
using namespace std;
class Point
{public: 
    double x,y,x1,y1,x2,y2; 
    double dist;
public:
    friend istream & operator>>(istream & in, Point & p);
    friend ostream & operator<<(ostream & out,Point & p);
    friend Point operator-( Point & , Point & );
    friend Point operator*( Point & , Point & );
    Ponit(double x1=0, double y1=0, double x2=0, double y2=0 )
    { 
      double dist;
      dist=sqrt((x2-x1)*(x2-x1)-(y2-y1)*(y2-y1));
      return dist;
    }
}; 
Point operator-(Point & p1, Point &p2){
    Point p;
    p.x = p2.x2 -p1.x1;
    p.y = p2.y2 -p1.y1;
    return p;
}
Point operator*(Point & p1, Point &p2){
    Point p;
    p.dist=sqrt((p2.x2-p1.x1)*(p2.x2-p1.x1)-(p2.y2-p1.y1)*(p2.y2-p1.y1));
    return p;
}
istream& operator>>(istream &in,Point &p)
{
    in>>p.x1>>p.y1>>p.x2>>p.y2;
    return in; 
}
ostream& operator<<(istream &out,Point &p) 
{
    out<<p.dist<<endl;
    return out;
}
int main()
{
  Point p1,p2;
  cin>>p1;
  cin>>p2;                     
  cout<<"这两点间的距离为:"<<distance<<endl;
  return 0;
}

 

  dist=sqrt((x2-x1)*(x2-x1)-(y2-y1)*(y2-y1));距离公式是这么写的吗?不是x*x+y*y,中间是加么

Point operator*(Point & p1, Point &p2){
    Point p;
    p.dist=sqrt((p2.x2-p1.x1)*(p2.x2-p1.x1)-(p2.y2-p1.y1)*(p2.y2-p1.y1));
    return p;
}

这个,sqrt((p2.x2-p1.x1)*(p2.x2-p1.x1)-(p2.y2-p1.y1)*(p2.y2-p1.y1));写错了,中间不是-(减号)应该是+(加号)