Потоковый вывод

Потоковый вывод выполняется с помощью операции включения (или помещения)<<. Стандартная операция сдвига влево << для операций вывода переопределяется. Ее левый операнд - это объект типа ostream, а правый операция может иметь любой стандартный тип, т.к. оператор << перегружен таким образом, чтобы поддерживать все стандартные типы данных. Операция << ассоциируется слева направо и возвращает ссылку на объект ostream, для которого она вызывается. Это позволяет выполнять каскад операций. Пример:

printf(“ Целое число:%d,число с плавающей точкой: %f”,i,f);

заменяется в С++ на

cout<<”Целое число:”<<i<<”,число с плавающей точкой: ”<<f;

Оператор << самостоятельно анализирует тип данных и выбирает формат их представления.

Перегрузка оператора <<

Допускается перегружать данный оператор. Прямым следствием перегрузки является возможность расширения операторов << и>> для обработки данных нестандартных типов. Ниже показано, как перегрузить оператор вывода, чтобы он мог принимать данные нового типа tclient:

struct tclient {char pszname[25]; char pszaddress[30];int pszphone;}

ostream& operator << (ostream& osout, tclient client)

{ osout<<” “<< client.pszname;

osout<<” “<< client.pszaddress;

osout<<” “<< client.pszphone;

}

Теперь для вывода содержимого структуры client необходимо задать следующий оператор:

cout<<client;

Эффективность операторов << и >> объясняется компактностью их программного кода.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: