Can anyone tell me why I'm getting the following error for the below program? It doesn't like my reuse of the base class, for some reason:

error C2664: 'Point::Point(const Point &)' : cannot convert parameter 1 from 'double' to 'const Point &'

error C2437: 'Point' : already initialized

Code:`#include <iostream>`

#include <cmath>

using namespace std;

const double PI = 3.14159;

class Point

{

protected:

double x, y;

public:

Point(double, double);

virtual int area();

double distance(Point&, Point&);

};

Point::Point(double XX, double YY)

{

x = XX;

y = YY;

}

int Point::area()

{

return 0;

}

double Point::distance(Point& myPoint, Point& myPoint1)

{

double distance = sqrt(pow((myPoint1.x-myPoint.x), 2)+pow((myPoint1.y-myPoint.y),2));

return distance;

}

class Circle : public Point

{

protected:

double radius;

public:

Circle(double rad, double X, double Y) : radius(rad), Point(x), Point(y){}

virtual double area(Circle&);

};

/*Circle::Circle(double rad)

{

radius = rad;

}*/

double Circle::area(Circle& myCircle)

{

return PI*pow((myCircle.radius), 2);

}

int main()

{

return 0;

}