В предыдущих разделах создаваемые функции-члены осуществляли вывод и ввод данных класса с помощью вызова функций наподобие show_data() или get_data(). Хотя технически здесь нет ничего неправильного, язык С++ обеспечивает гораздо более совершенный способ выполнения операций ввода/вывода классов с помощью перегрузки операторов << и >>.
На языке С++ оператор << называют оператором вставки (insertion), потому что он вставляет символы в поток. Аналогичным образом оператор >> называется оператором извлечения (extraction), поскольку он извлекает символы из потока. Операторы, перегружающие эти операторы вставки и извлечения, обычно называют инсертером (inserter) и экстрактором (extractor) соответственно. Операторы вставки и извлечения перегружаются в файле iostream.h для того, чтобы выполнять потоковый ввод/вывод любых встроенных типов С++. В этом разделе объясняется, каким образом определить эти операторы по отношению к определяемым классам.