in
ECP::Point& result = ECP::Add(Basepoint, point);
you call ECP::Add
as a static member of ECP, the error indicates there is no static Add , you need to apply it to an instance of ECP
When I look at the documentation I only see
const Point & Add (const Point &P, const Point &Q) const
which is not static
Also
const ECP::Point& ECP::Add(&Basepoint, &point);
const int result = ECP::Point ECP::Add(&Basepoint, &point);
are an invalid forms.
Even having just ECP::Add(&Basepoint, &point);
is also wrong because the operation is not static and because the arguments are pointers to Point incompatible with the operation parameters. Probably you have to look at what a reference is in C++ documentation/tutorial
A valid code can be
ECP ecp;
Point basepoint;
Point point;
// set ecp, basepoint and point to be the ones you want
const Point & r1 = ecp.Add(basepoint, point); // do not copy the result
Point r2 = ecp.Add(basepoint, point); // copy result in non const to be able to modify it later etc