L'operatore che hai definito opera su oggetti di tipo Geometrics::Point, ma tu stai facendo un assegnamento tra puntatori a Geometrics::Point (e l'assegnamento tra puntatori non è ridefinibile, per ovvi motivi). Se vuoi che l'assegnamento funzioni effettualo tra due oggetti:
codice:
Geometrics::Point *p1 = new Geometrics::Point(1.1, 1.1);
Geometrics::Point *p2 = new Geometrics::Point(2.2, 2.2);
*p1=*p2;
O, molto meglio:
codice:
Geometrics::Point p1(1.1, 1.1);
Geometrics::Point p2(2.2, 2.2);
p1=p2;
dato che non mi pare abbia alcun senso allocare questi due oggetti nell'heap (se vieni da Java, in C++ new si usa molto più di rado).