La surcharge d'opérateur en C

Je suis en train de la surcharge de certains opérateurs:

/* Typedef is required for operators */
typedef int Colour;

/* Operators */
Colour operator+(Colour colour1, Colour colour2);
Colour operator-(Colour colour1, Colour colour2);
Colour operator*(Colour colour1, Colour colour2);
Colour operator/(Colour colour1, Colour colour2);

J'obtiens cette erreur pour chaque essayé de surcharge:

expected '=', ',', ';', 'asm' or '__attribute__' before '+' token

Je ne peux pas trouver une bonne documentation sur la surcharge d'opérateur. Googler résultats en C++ tutoriels qui utilisent les classes. En C il n'y a pas de classes. Quelqu'un peut-il m'aider? Merci.

  • Il suffit de ne pas :). Quoi de mal avec struct RGB {int8_t red, green, blue;};. Avez-vous vraiment besoin de tout ce que meta, tout le putain de temps?
  • Même si C serait en charge de la surcharge d'opérateur: ne opérateur* opérateur et/ sens sur les couleurs?
  • Brun - Pourquoi ne serait-il pas de sens? Une fois que les opérateurs sont surchargés, ils pourraient dire quelque chose, pas juste "multiplier" et "fracture".
  • d'accord, mais quand ils ne le font pas dire de multiplier et de diviser, pourquoi s'embêter avec la surcharge à tous? Même en C++, il est très mauvais style de la surcharge d'opérateur lorsque les opérateurs ne correspondent pas à l'original de leurs significations.
  • "ne opérateur* opérateur et/ sens sur les couleurs?" Alpha (pre)de la multiplication, peut-être?
InformationsquelleAutor | 2010-08-05