2010-07-19 5 views
17

Je connais les noms de la plupart des opérateurs, mais je ne sais pas ce que operator<< et operator>> sont appelés.Qu'est-ce que "operator <<" appelé?

à-dire

operator=() // the assignment operator 
operator==() // the equality of comparison operator 
operator++() // the increment operator 
operator--() // decrement operator etc. 
operator<() // the less-than operator 

et ainsi de suite ...

+0

Cela dépend des opérandes. – Gumbo

+25

J'aime les appeler '<<' and '>>', mais la prononciation est un peu difficile pour certaines personnes. –

+1

w.r.t l'en-tête iostream, << est l'opérateur d'extraction. (>> est l'insertion). Très méchant. –

Répondre

15

<< décalage à gauche

>> décalage à droite

+3

Ah. Donc, l'utilisation de l'opérateur << a été bastardisée pour l'implémentation du flux. c'est-à-dire std :: cout << "Hello Mum" << std :: endl. – ScaryAardvark

+5

@ScaryAardvark: C'est ce qu'on appelle la surcharge –

+5

En linguistique, elle s'appelle [bastardisation] (http://en.wiktionary.org/wiki/bastardisation). – dreamlax

7
<< = Bitwise left shift 
>> = Bitwise right shift 
32

<< est à la fois l'opérateur d'insertion et l'opérateur de décalage vers la gauche.
>> est l'opérateur d'extraction et l'opérateur de décalage vers la droite. Dans le contexte des iostreams, ils sont considérés comme une insertion/extraction de flux. Dans le contexte du transfert de bits, ils sont à gauche et à droite.

+1

+1 Vous faites une distinction importante. Le nom de l'opérateur change en fonction de la façon dont il est utilisé (et plus important encore, du type de données sur lequel il est utilisé). En raison de cette particularité, j'ai entendu la notation '<<' and '>>' désignée sous le nom de signes «double-gauche» et «double-droite» comme une manière générique de référencer le symbole de manière contextuelle (similaire à la façon dont vous pourriez appelez '+' "plus" ou '/' "slash", peu importe comment ils ont été surchargés, mais ce n'est en aucun cas officiel. – bta

1

< < est l'opérateur de «décalage vers la gauche». Il décale son premier opérande laissé par le nombre de bits spécifié par son deuxième opérande.

15

dans les flux C++,

  • << est opérateur d'insertion.
  • >> est un opérateur d'extraction.

Dans les opérations binaires,

  • Décalage à droite (>>)
  • décalage à gauche (< <)
4

Les noms originaux ont été décalage vers la gauche opérateur (<<) et droite décalage opérateur (>>), mais avec leur meani ngs perverti par des flux dans l'insertion et l'extraction, vous pourriez argumenter que même dans les opérations bit à bit insère bits sur la droite tandis que >>les extraits eux. Par conséquent, je les appelle presque toujours insertion et opérateurs d'extraction.

0

Ils sont appelés les symboles Guillemet Left et Guillemet Right :)

+0

Avez-vous une référence. Ou le sarcasme a-t-il simplement survolé ma tête? –

+0

Ils ressemblent à des * guillemets, mais les appeler ainsi impliquerait que chaque '' 'a besoin d'une fermeture >> >>'. J'ai vu des programmeurs débutants qui remarquent la similarité et font l'erreur d'essayer d'utiliser les caractères '' 'et' »' directement :) – bta

+0

Bon point sur la nécessité de fermer >> - trop intelligent pour mon propre bien! Ils sont aussi utilisés en Perl: http://en.wikipedia.org/wiki/Guillemets –

Questions connexes