Dans de nombreuses langues, y compris C++ vous êtes autorisé à faire ce qu'il est appelé « surcharge de l'opérateur »
Dans votre code si vous avez une opération par exemple que vous effectuez à plusieurs reprises, généralement à cause de plus propre et plus pratique code, vous pouvez choisir un opérateur existant (tel que -, + =, ==, < <, >>) et le redéfinir localement en le remplaçant, puis l'utiliser comme bon vous semble.
Il existe également des cas où vous remplacez l'opérateur pour créer la fonctionnalité souhaitée dans une bibliothèque. Par exemple: - Vous avez créé une classe principalement pour stocker des blocs d'informations. Ensuite, vous utilisez des classes conteneur (provenant de diverses bibliothèques) pour stocker des instances de votre classe.Donc, habituellement, chaque classe de conteneur aura des méthodes pour jongler, supprimer, ajouter, comparer (...) les instances stockées. Supposons que vous vouliez comparer une instance de Foo foo avec woo = FooContainer [0] stocké dans votre conteneur avec "==" in, certaines bibliothèques vous demanderont de redéfinir ainsi l'opérateur "==" de toute façon, où assumera. Par exemple, ils ne retourneront vrai que si (foo.a == woo.a & & foo.b == woo.b & & foo.c == woo.c) est vrai. Eh bien, peut-être que deux instances sont les mêmes pour votre utilisation seulement si leur 'c' est le même, alors vous pouvez simplement remplacer "==". Vous le feriez typiquement dans Foo, juste sous le constructeur. Il avait l'air semblable à ceci:
bool operator==(const Foo &foo) const {return c == foo.c;}
Bottomline:
- S'il y a une opération on ne peut pas donner un sens, vous voudrez peut-être regarder manuel technique si exist. Si ce n'est pas le cas, allez dans les fichiers d'en-tête, remplacez les classes, etc. pour explorer les opérateurs écrasés avant d'aller au fond du code.
- Vous voulez également vous familiariser avec eux-mêmes, car (a) vous pourriez devoir utiliser dans certains cas, (b) il pourrait vous donner des fonctionnalités que vous voulez super facilement, (c) il peut rendre votre code propre et simple.
Hope it helps ..
Voulez-vous dire que cmd est une classe ou est-ce une instance d'une classe (par exemple une variable d'un type pour lequel « opérateur << » est défini)? Si ce dernier, il devrait y avoir une fonction appelée operator << ("type of cmd", char *) ou quelque chose de similaire. Pouvons-nous voir cela s'il vous plaît? – andand
Voir Modifier pour OP. – Mick