Фролов А.В., Фролов Г.В. Библиотека системного программиста Том 24 Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT Введение Microsoft Visual C++ Microsoft Visual C++ версия 4.0 Следующие версии Microsoft Visual C++ Как связаться с авторами Благодарности 1. Немного о C++ Ввод/вывод Константы Ссылки Распределение памяти Операторы new и delete Перегрузка имен функций Задание параметров функции по умолчанию Встраивание Классы Ключевое слово this Разграничение доступа к элементам класса Методы, входящие в класс Конструкторы и деструкторы класса Методы, не изменяющие объекты класса Статические методы Общие члены объектов класса Наследование Единичное наследование Множественное наследование Разграничение доступа к элементам базового класса Переопределение методов базового класса Виртуальные методы Абстрактные классы Структуры Шаблоны Шаблоны в MFC Перегрузка операторов Обработка исключительных ситуаций Операторы try, throw и catch Универсальный обработчик исключений Тип исключения 2. Введение в MFC Классы библиотеки MFC Самый базовый класс MFC (класс CObject) Основа структуры приложения (класс CCmdTarget) Исключения (класс CException) Массивы, списки и словари Файловая система (класс CFile) Контекст отображения (класс CDC) Объекты графического интерфейса (класс CGdiObject) Меню (класс CMenu) Базы данных (классы для работы с базами данных) Синхронизация задач приложения (класс CSyncObject) Сокеты (классы CAsyncSocket и CSocket) Классы, не имеющие базового класса Простые классы Архивный класс (класс CArchive) Информация о классе объекта (структура CRuntimeClass) Отладка приложения (классы CDumpContext, CMemoryState) Печать документа (класс CPrintInfo) Первое приложение MFC Окно Project Workspace Средства ClassView Добавление к классу нового метода Добавление к классу нового элемента данных Просмотр дерева наследования классов Редактирование методов класса Редактирование элементов данных класса Приложение с единственным окном Обработка сообщений Оконные сообщения Сообщения от органов управления Командные сообщения Таблица сообщений Приложение MFMenu Долгий путь сообщения Диалоговая панель Приложение с модальной диалоговой панелью Приложение с немодальной диалоговой панелью 3. Некоторые классы MFC Класс CObject – основной класс MFC Конструкторы класса Оператор присваивания Диагностика Сохранение и восстановление состояния объекта Информация о классе Класс CPoint – точка на плоскости Класс CSize – относительные координаты Класс CString – текстовые строки Конструктор класса Коллекции Массивы – шаблон CArray Списки – шаблон CList Словари – шаблон CMap Класс CTime – дата и время Файловая система – класс CFile Открытие и создание файлов Идентификатор открытого файла Закрытие файлов Чтение и запись файлов Метод Flush Операции с файлами Блокировка Позиционирование Характеристики открытого файла Файловая система – классы CMemFile и CStdioFile Модификация класса CMemFile Файловая система – класс CStdioFile Приложение TestFile Исключения – класс CException Класс CException Класс CMemoryException Класс CFileException Класс CArchiveException Класс CNotSupportedException Класс CResourceException Класс CUserException Запись и восстановление объектов Запись в архивный файл Чтение из архивного файла Многозадачные приложения 4. Приложение с главной диалоговой панелью Создание приложения средствами MFC AppWizard Приложение Dialog Имена, используемые MFC Ресурсы приложения Исходные тексты приложения Средства ClassWizard Создание нового класса Включение в класс новых методов Включение в класс новых элементов данных Просмотр характеристик класса 5. Однооконный интерфейс Модель “документ – окно просмотра ” Процедура создания однооконного приложения Приложение Single Ресурсы приложения Классы приложения Обработка командных сообщений Порядок обработки сообщений Командные сообщения и приложение Single Изменение порядка обработки сообщений Стандартные команд ные сообщения Простейший графический редактор Создание нового документа Сохранение и восстановление документа на диске Для забывчивых пользователей Простейший текстовый редактор Заключение Литература
Константы В Си++ существует удобное средство определения констант. Если в Си вы должны были пользоваться директивой препроцессора #define, то теперь введено новое ключевое слово const, позволяющее создавать константы. Преимущество в использовании ключевого слова const перед директивой #define состоит в том, что компилятор проверяет тип этих констант.
Ключевое слово const указывают перед объявлением переменной. Такая переменная не может быть модифицирована. Попытки изменить ее вызывают ошибку на этапе компиляции.
В программе, приведенной ниже, объявляются две константы. Одна типа int, другая типа char:
// Включаемый файл для потокового ввода/вывода
#include lt;stdio.hgt;
int main(void) {
// Объявляем две константы
const int max_nuber = 256;
// Выводим текстовую строку на экран
printf("Const Number is %d \n", max_nuber);
return 0;
}
Ключевое слово const можно указывать при объявлении постоянных указателей, которые не могут менять своего значения. Заметим, что объект (переменная), определяемый постоянным указателем, может быть изменен:
int iNumber;
int *const ptrNumber = amp;iNumber;