Articles of surcharge de l’opérateur

Rendre opérateur << virtuel?

J’ai besoin d’utiliser un opérateur virtuel Cependant, quand j’essaye d’écrire: virtual friend ostream & operator<<(ostream& os,const Advertising& add); Je reçois l’erreur du compilateur Erreur 1 Erreur C2575: ‘opérateur <<': seules les fonctions membres et les bases peuvent être virtuelles Comment puis-je transformer cet opérateur virtuel?

valeur de retour de la surcharge de l’opérateur en C ++

J’ai une question sur la valeur de retour de la surcharge d’opérateur en C ++. En général, j’ai trouvé deux cas, l’un est retour par valeur et l’autre est référence par référence. Alors, quelle est la règle de dessous? Surtout au cas où vous pouvez utiliser l’opérateur en continu, tel que le cout<<x<<y . Par […]

déclaration ami déclare une fonction non-modèle

J’ai une classe de base similaire au code ci-dessous. Je tente de surcharger << à utiliser avec cout. Cependant, g ++ dit: base.h:24: warning: friend declaration ‘std::ostream& operator<<(std::ostream&, Base*)’ declares a non-template function base.h:24: warning: (if this is not what you intended, make sure the function template has already been declared and add after the […]

Opérateur de surcharge == versus Equals ()

Je travaille sur un projet C # sur lequel, jusqu’à présent, j’ai utilisé des objects et des fabriques immuables pour garantir que les objects de type Foo puissent toujours être comparés pour l’égalité avec == . Foo objects Foo ne peuvent pas être modifiés une fois créés et la fabrique retourne toujours le même object […]

Opérateur d’assignation de surcharge en C #

Je sais que l’opérateur = ne peut pas être surchargé, mais il doit y avoir un moyen de faire ce que je veux ici: Je ne fais que créer des classes pour représenter des unités quantitatives, puisque je fais un peu de physique. Apparemment, je ne peux pas simplement hériter d’une primitive, mais je veux […]

Définition de l’opérateur <pour une structure

J’utilise parfois de petites structs comme clés dans les cartes, et je dois donc définir un operator< pour elles. En général, cela finit par ressembler à ceci: struct MyStruct { A a; B b; C c; bool operator<(const MyStruct& rhs) const { if (a < rhs.a) { return true; } else if (a == rhs.a) […]

std :: endl est de type inconnu lors de la surcharge de l’opérateur <<

J’ai surchargé l’opérateur << template UIStream& operator<<(const T); UIStream my_stream; my_stream << 10 << " heads"; Fonctionne mais: my_stream << endl; Donne une erreur de compilation: error C2678: binary ‘<<': aucun opérateur trouvé prenant un opérande gauche de type 'UIStream' (ou il n'y a pas de conversion acceptable) Quel est le travail pour rendre my_stream […]

Puis-je utiliser l’opérateur == si je n’ai implémenté que l’opérateur <?

J’ai implémenté un operator< pour un certain object. Logiquement, si !(a < b) et !(b < a) cela signifie a == b . Est-ce inféré automatiquement? Puis-je utiliser == si je == que < ?

Puis-je surcharger un opérateur en Objective-C?

Est-il possible de remplacer l’utilisation de l’opérateur dans Objective-C? Par exemple myClassInstance + myClassInstance appelle une fonction personnalisée pour append les deux.

Quand surcharger l’opérateur de virgule?

Je vois souvent des questions sur SO concernant la surcharge de l’opérateur en virgule en C ++ (principalement sans lien avec la surcharge elle-même, mais des choses comme la notion de points de séquence), et je me demande: Quand devriez- vous surcharger la virgule? Quels sont quelques exemples de ses utilisations pratiques? Je ne peux […]