7
votes

TypeDef et surcharge de l'opérateur en C ++

Supposons que je tapey a un tableau entier ou entier ou tout type connu: xxx

puis i Overload Opérateur * Pour les paires int 2, si j'initialise les variables A et B comme INT. Alors mon * entre A et B soit-il surchargé *?

Comment puis-je obtenir surcharger un int et encore utiliser * pour la façon dont ils sont. Devrais-je créer un nouveau type?


1 commentaires

Peut-être utiliser une énumération plutôt que l'int? Vous pouvez définir des opérateurs personnalisés pour les énumérations.


3 Réponses :


5
votes

C n'autorise pas la surcharge de l'opérateur.


1 commentaires

Bien que ce n'était pas à l'origine à 100%, il s'agissait d'une question C ++, la question a maintenant été mise à jour pour clarifier. Donc, à l'origine, cela aurait probablement dû être un commentaire, il n'est donc certainement pas une réponse pertinente. S'il vous plaît supprimer ça.



10
votes

En supposant que vous parlez de C ++:
Les surcharges de l'opérateur doivent prendre au moins un argument de type défini par l'utilisateur. Le Typedef ne change rien, car il n'entraîne pas de nouveau type et fournit uniquement un synonyme.


0 commentaires

5
votes

Ce dont vous avez besoin est un STRAND TECHEDEF .

Boost proposé une version qui devrait fonctionner pour vous, ou du moins vous aider à résoudre votre besoin:

http://www.boost.org/doc/libs/1_42_0/boost/strong_typef.hpp


0 commentaires