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

несколько важных отличий: одно из них состоит в том, что большая часть деталей функций findfirst и findnext инкапсулирована в классе DIR_LIST. Это, конечно, не может сильно упростить наш пример, и так не слишком сложный, но эффект будет весьма значителен, если эта процедура станет составной частью утилиты, выполняющей тысячи таких задач.

h03521.jpg

Рис. 14.1. Код программы из листинга 14.4, вероятно, достаточно близок к внутренней реализации программ, обеспечивающих возможности управления файлами, типа показанного здесь Проводника (Explorer) Windows 95

Строка 2 содержит заголовок (файл dir2.h), содержащий определение класса (см. листинг 14.5).

h03522.jpg

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 О; // по окончании просмотра возвращает О,

//в противном случае возвращает

// следующую строку