ОП, ну зачем тебе С/С++? Негодный же язык.
Lisp:
point X Y => | x => X
| y => Y
| metric => X^2+Y^2 sqrt
| + P => point X+P.x Y+P.y
C/C++
class point {
private:
int X;
int Y;
public:
point (int XX, int YY) { X=XX; Y=YY; }
int x () { return X; }
int y () { return Y; }
metric () { return sqrt(X^2+Y^2); }
point operator + (P) { return pow(P.x(),2)+pow(P.y(),2); }
};