330____________________________Часть II. Программирование на C++

работает совсем как

ofstream out( "DATE.TXT");

out « d; // Вывод даты в файл

не требуя никаких изменений в классе DATE. Благодаря применению потоков нам не пришлось переделывать или усложнять класс — как файловые, так и консольные потоки ввода-вывода наследуют свое поведение от общих предков.

Далее...

Классы потоков ввода-вывода, как таковые, частью C++ не являются, но их значение для языка неоценимо. Они наглядно демонстрируют силу многих его аспектов. Часть изученного материала могла быть для вас сравнительно несложной, а что-то было труднее или требовало дополнительного изучения.

Из этой главы вы получили представление о том, как осуществляется ввод и вывод. Вам предстоит еще многое понять и приобрести солидный опыт, прежде чем вы будете создавать классы на таком уровне. Чтобы узнать, как другие средства языка поддерживают проектирование лаконичных и удобных классов — таких как классы иерархии потоков ввода-вывода — обратитесь к следующим главам:

• Глава 3 "Объектно-ориентированные анализ и проектирование" объясняет, что такое объект и как использовать объектно-ориентированные конструкции C++ при разработке программного обеспечения.

• В главе б "Базовые типы данных и операции" обсуждаются типы данных и операции, при помощи которых программисты выражают свои идеи.

• Из главы 14 "Базовые концепции классов" вы узнаете, как с помощью C++ и объектно-ориентированного программирования решать сложные программные задачи.

• В главе 15 "Перегрузка функций" объясняется, как использовать перегрузку функций для'того, чтобы не перегрузить свою программу обилием имен функций.

• Глава 16 "Перегрузка операций" демонстрирует, как надо писать оператор-функции, попутно рассказывая об операциях в качестве функций, перегружаемых операциях, раскрытии операций и унарных операциях.