Dúvida sobre operadores << >> C++

Olá, coders. Uma dúvida. Em C++ sabemos que os operadores “<<; >>” são deslocadores de bits. Mas porque usá-lo no comando “cout << …” ? Qual a diferença de usar ele com variáveis e no comando cout ?

Muito obrigado.

Eu posso estar falando bobagem, mas possivelmente é uma sobrecarga de método, em que o simbolo << assume funções diversificadas. Igual o simbolo * que pode significar um ponteiro como pode significar a multiplicação em C.

2 curtidas

<< e >> , antes de serem deslocadores de bits, são operadores (da mesma forma que +, -, *, /, %). O comportamento padrão deles quando operam sobre tipos suportados (números, por exemplo) é efetuar o deslocamento de bits.

No caso da classe ostream, esses operadores são sobrescritos para receber o stream de uma entrada (input, por exemplo) ou enviar para uma saída (tela, por exemplo), e passam a ser conhecidos como operadores de inserção (insertion operators).

A sobrescrita de operadores é um dos recursos mais poderosos da linguagem C++, mas também um dos que mais pode causar problemas se usado errado. Qualquer classe pode sobrescrevê-los, e permitir coisas que de outra forma seriam muito mais complexas.

Abraço.

2 curtidas

Entendi perfeitamente, pessoal. Valeu