На этом шаге мы приведем фрагмент иерархии классов MFC.
Библиотека MFC реализована как набор классов C++. Одним из основных способов повторного использования кода в C++ является механизм наследования. Он позволяет создать производный класс, обладающий всеми характеристиками родительского. Подобно другим библиотекам классов C++, классы, входящие в MFC, организованы в виде наследственной иерархии. Она содержит огромное количество узкоспециальных классов, производных от нескольких базовых, обеспечивающих всех своих потомков общими функциями.
В качестве примера на рисунке 1 показана структура наследования класса CDialog, представляющего диалоговое окно Windows.
Рис.1. Структура наследования класса CDialog
На вершине иерархии MFC находится класс CObject. Он является базовым для большинства классов MFC, обеспечивая их основными функциями, к которым относится в том числе сериализация (сохранение и восстановление объектов в/из файла), информация о классе периода выполнения, поддержка диагностики и отладки (проверка достоверности и создание дампов), совместимость с классами наборов.
CCmdTarget - базовый класс для объектов, способных обрабатывать сообщения Windows.
Класс CWnd представляет окно. Тот факт, что класс CDialog является производным от CWnd, подтверждает, что диалог - это специальный тип окна.
Проиллюстрируем, как использовать справочную систему Visual C++ для просмотра иерархии классов MFC (MFC Hierarchy Chart).
Рис.2. Окно с иерархией классов
На следующем шаге мы приведем классификацию классов MFC.