330____________________________Часть II. Программирование на C++
работает совсем как
ofstream out( "DATE.TXT");
out « d; // Вывод даты в файл
не требуя никаких изменений в классе DATE. Благодаря применению потоков нам не пришлось переделывать или усложнять класс — как файловые, так и консольные потоки ввода-вывода наследуют свое поведение от общих предков.
Далее...
Классы потоков ввода-вывода, как таковые, частью C++ не являются, но их значение для языка неоценимо. Они наглядно демонстрируют силу многих его аспектов. Часть изученного материала могла быть для вас сравнительно несложной, а что-то было труднее или требовало дополнительного изучения.
Из этой главы вы получили представление о том, как осуществляется ввод и вывод. Вам предстоит еще многое понять и приобрести солидный опыт, прежде чем вы будете создавать классы на таком уровне. Чтобы узнать, как другие средства языка поддерживают проектирование лаконичных и удобных классов — таких как классы иерархии потоков ввода-вывода — обратитесь к следующим главам:
• Глава 3 "Объектно-ориентированные анализ и проектирование" объясняет, что такое объект и как использовать объектно-ориентированные конструкции C++ при разработке программного обеспечения.
• В главе б "Базовые типы данных и операции" обсуждаются типы данных и операции, при помощи которых программисты выражают свои идеи.
• Из главы 14 "Базовые концепции классов" вы узнаете, как с помощью C++ и объектно-ориентированного программирования решать сложные программные задачи.
• В главе 15 "Перегрузка функций" объясняется, как использовать перегрузку функций для'того, чтобы не перегрузить свою программу обилием имен функций.
• Глава 16 "Перегрузка операций" демонстрирует, как надо писать оператор-функции, попутно рассказывая об операциях в качестве функций, перегружаемых операциях, раскрытии операций и унарных операциях.