在线!友元函数

在线求助!友元函数
#include<iostream>
using namespace std;
class location{
  private:
  double x,y;
  public:
  location(double,double);


  friend double distance(location&,location&);
};
double distance(location &p1,location &p2)
{

cout<<p1.x<<endl;
cout<<p1.y<<endl;
cout<<p2.x<<endl;
cout<<p2.y<<endl;
return(p1.x);
}
location::location(double a,double b)
{
  x=a;
  y=b;

}

int main()
{

  location A(-10,-20);location B (-40,60);

distance(A,B);

  return 0;}


编译有错,帮忙找找原因,看了好久

------解决方案--------------------
C/C++ code

#include<iostream>
using namespace std;

class CLocation{
private:
    double x,y;
public:
    CLocation(double,double);


    friend double Dist(CLocation&,CLocation&);
};
double Dist(CLocation &p1,CLocation &p2)
{

    cout<<p1.x<<endl;
    cout<<p1.y<<endl;
    cout<<p2.x<<endl;
    cout<<p2.y<<endl;
    return(p1.x);
}

CLocation::CLocation(double a,double b)
{
    x=a;
    y=b;

}

int main()
{

    CLocation A(-10,-20);CLocation B (-40,60);

    Dist(A,B);

    return 0;}