2010-07-19 12 views
17

Conosco i nomi della maggior parte degli operatori ma non sono sicuro di ciò che sono chiamati operator<< e operator>>.Cosa si chiama "operatore <<"?

cioè

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

ecc ...

+0

Dipende dagli operandi. – Gumbo

+25

Mi piace chiamarli '<<' and '>>', ma la pronuncia è un po 'difficile per alcune persone. –

+1

w.r.t l'intestazione iostream, << è l'operatore di estrazione. (>> è inserimento). Molto cattivo. –

risposta

15

<< spostamento a sinistra

>> spostamento a destra

+3

Ah. Quindi l'uso dell'operatore << è stato bastardizzato per l'implementazione del flusso. cioè std :: cout << "Hello Mum" << std :: endl. – ScaryAardvark

+5

@ScaryAardvark: Si chiama overloading –

+5

In linguistica si chiama [bastardisation] (http://en.wiktionary.org/wiki/bastardisation). – dreamlax

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

<< è sia l'operatore di inserimento che l'operatore di spostamento a sinistra.
>> è l'operatore di estrazione e l'operatore di spostamento a destra.

Nel contesto degli iostreams, sono considerati l'inserimento/l'estrazione del flusso. Nel contesto del cambio di bit, si spostano a sinistra e a destra.

+1

+1 Fai una distinzione importante. Il nome dell'operatore cambia in base a come viene utilizzato (e, soprattutto, a quale tipo di dati viene utilizzato). A causa di questa peculiarità, ho sentito la notazione '<<' and '>>' denominata "doppia-sinistra" e "doppia-destra" come un modo generico di referenziare il simbolo in un contesto privo di contesto (simile a come potresti chiama '+' "plus" o '/' "" barra "non importa quanto fossero sovraccaricati), ma questo non è in alcun modo ufficiale. – bta

1

< < è l'operatore "spostamento a sinistra". Sposta il suo primo operando lasciato dal numero di bit specificato dal suo secondo operando.

15

In C++ Streams,

  • << è operatore di inserimento.
  • >> è un operatore di estrazione.

In operazioni binarie,

  • spostamento a destra (>>)
  • spostamento a sinistra (< <)
4

I nomi originali erano sinistra spostamento operatore (<<) e spostamento a destra operatore (>>), ma con il loro meani ngs pervertito dagli stream nell'inserimento e nell'estrazione, si potrebbe obiettare che anche nelle operazioni bit a bit <<inserisce bit a destra mentre >>estratti. Di conseguenza, mi riferisco quasi sempre a loro come gli inserimenti e estrazione.

0

Si chiamano i simboli Guillemet Left e Guillemet Right :)

+0

Hai un riferimento. O il sarcasmo mi ha appena sorvolato la testa? –

+0

Loro * assomigliano * ai segni di Guillemet, ma chiamarli così significherebbe che ogni << << 'ha bisogno di una chiusura' >> '. Ho visto alcuni programmatori che hanno notato la somiglianza e hanno commesso l'errore di provare a usare direttamente i caratteri '' 'e' »' :) – bta

+0

Un buon punto sul richiedere la chiusura >> - troppo intelligente per il mio bene! Sono effettivamente utilizzati anche in Perl: http://en.wikipedia.org/wiki/Guillemets –