Класс std::basic_istream<CharT, Traits>
моделирует входной поток символов типа CharT
. Он обеспечивает как относительно низкоуровневый, так и относительно высокоуровневый доступ к этому входному потоку. Вы можете, например, вызвать std::cin.get()
, чтобы получить следующий символ из входного потока; это всегда будет возвращать CharT
, так как это основной тип символов в потоке. Однако basic_istream
также предоставляет отформатированные входные функции , цель которых состоит в том, чтобы интерпретировать этот поток символов как кодировку некоторого типа, которая потенциально может быть int
, std::basic_string<CharT, Traits>
или чем-то еще. Таким образом, хотя поток не состоит из int
s, существует operator>>
, который извлекает значение int
путем последовательного считывания цифр из потока char
и интерпретации их как представление целого числа с основанием 10. Функция operator>>
перегружена, поэтому ее можно использовать для извлечения различных типов.