Сильно типизированная библиотека
Библиотека iostream
сильно типизирована. Например, попытка прочитать из объекта класса ostream или записать в объект класса istream помечается компилятором как нарушение типизации. Так, если имеется набор объявлений:
#include <iostream> #include <fstream> class Screen; extern istream& operator>>( istream&, const Screen& ); extern void print( ostream& ); |
ifstream inFile;
то следующие две инструкции приводят к нарушению типизации, обнаруживаемому во время компиляции:
int main() { Screen myScreen; // ошибка: ожидается ostream& print( cin >> myScreen ); // ошибка: ожидается оператор >> |
inFile << "ошибка: оператор вывода";
Средства ввода/вывода включены в состав стандартной библиотеки C++. В главе 20 библиотека iostream
описана не полностью, в частности вопрос о создании определенных пользователем манипуляторов и буферных классов остался за рамками введения в язык. Мы сосредоточили внимание лишь на той части библиотеки iostream, которая имеет основополагающее значение для программного ввода/вывода.
Приложение