Opérateur surchargé dans struct

Suppose que j'définir cette structure:

struct Point {
   double x, y;
};

Comment puis-je surcharge le + de l'opérateur, de sorte que, a déclaré,

Point a, b, c;
double k;

l'expression

c = a + b;

rendements

c.x = a.x + b.x;
c.y = a.y + b.y;

et l'expression

c = a + k;

rendements

c.x = a.x + k;
c.y = a.y + k; //?

Sera la commutativité tenir pour le dernier cas? C'est, ne c = a + k; et c = k + a; être traitées séparément?

source d'informationauteur Raptor