352 Часть II. Программирование на C++
несколько важных отличий: одно из них состоит в том, что большая часть деталей функций findfirst и findnext инкапсулирована в классе DIR_LIST. Это, конечно, не может сильно упростить наш пример, и так не слишком сложный, но эффект будет весьма значителен, если эта процедура станет составной частью утилиты, выполняющей тысячи таких задач.
Рис. 14.1. Код программы из листинга 14.4, вероятно, достаточно близок к внутренней реализации программ, обеспечивающих возможности управления файлами, типа показанного здесь Проводника (Explorer) Windows 95
Строка 2 содержит заголовок (файл dir2.h), содержащий определение класса (см. листинг 14.5).
1 // DIR2.H — Простой класс просмотра каталогов
2 ftifndef _DIR2_H
3 #define _DIR2_H
4 ^include <dir.h>
5 #include <dos.h>
6 class DIR_LIST
7 {
8 public:
9 DIR_LIST( char* fname = "*.*", int attrib = 0); // аргументы
// конструктора по умолчанию 10: virtual ~DIR LIST(){}; // деструктор в действительности
//не нужен 11: int Next О; // по окончании просмотра возвращает О,
//в противном случае возвращает
// следующую строку