Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT | страница 31



Ошибка, связанная с файловой системой
CMemoryExceptionНедостаточно оперативной памяти
CNotSupportedExceptionПопытка выполнить неопределенную операцию
COleDispatchException, COleExceptionОшибка OLE
CResourceExceptionНе найден ресурс
CUserExceptionОшибка приложения, вызванная действиями пользователя

Массивы, списки и словари

В состав MFC включен целый набор классов, предназначенных для хранения информации в массивах, списках и словарях. Все эти классы наследованы от базового класса CObject.

Не смотря на то, что в языке Си определено понятие массива, классы MFC обеспечивают вам более широкие возможности. Вы, например, можете динамически изменять размер массива, определенного с помощью соответствующего класса.

Для представления массивов предназначены следующие классы.

КлассМассив содержит
CByteArrayБайты
CDWordArrayДвойные слова
CObArrayУказателей на объекты класса CObject
CPtrArrayУказателей типа void
CStringArrayОбъекты класса CString
CUIntArrayЭлементы класса unsigned integer или UINT
CWordArrayСлова

Фактически все перечисленные в таблице классы различаются только типом элементов массива. Поэтому вместо использования этих классов гораздо проще воспользоваться шаблоном CArray. Используя шаблон CArray, вы можете определять массивы из элементов любых типов и классов. Шаблон CArray наследует свойства класса CObject.

Для построения массивов вы можете также воспользоваться шаблоном CTypedPtrArray. Этот шаблон не наследуется от базового класса CObject, поэтому использовать методы класса CObject для него нельзя.

Для решения многих задач используются такие структуры хранения данных, как списки. MFC включает ряд классов, наследованных от базового класса CObject, которые предоставляют программисту готовое средство для создания собственных списков. В этих классах определены все методы необходимые при работе со списками – добавление нового элемента, вставка нового элемента, определение следующего или предыдущего элемента в списке, удаление элемента и т. д.

КлассСписок содержит элементы
CObListУказатели на объекты класса CObject
CPtrListУказатели типа void
CStringListОбъекты класса CString

Перечисленные в таблице классы позволяют построить списки из элементов любых типов и объектов любых классов. Однако удобнее пользоваться шаблоном CList, также наследованным от базового класса CObject. Для построения списков вы можете также использовать шаблон CTypedPtrList. Этот шаблон не наследуется от базового класса CObject.