Фролов А.В., Фролов Г.В. Библиотека системного программиста Том 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 Изменение порядка обработки сообщений Стандартные команд ные сообщения Простейший графический редактор Создание нового документа Сохранение и восстановление документа на диске Для забывчивых пользователей Простейший текстовый редактор Заключение Литература
Задание параметров функции по умолчанию Еще одна интересная возможность, которая появляется у вас после перехода от Си к Си++, позволяет при определении функций задавать некоторые ее параметры по умолчанию. Вызывая такую функцию, можно не указывать параметры, заданные по умолчанию.
Если большинство вызовов функции выполняется с одинаковыми параметрами, это позволяет сократить текст программы, а главное, уменьшить возможность совершения ошибок во время набора параметров функции.
Параметры по умолчанию можно задать во время объявления функции или во время ее определения. По умолчанию задают только последние параметры функций:
int Summa(int first, int second, int third=0, int fourth=0) {
return(first + second + third + fourth);
}
Функцию Summa можно использовать для сложения четырех, трех или двух чисел. Если складываются два числа, то третий и четвертый параметр можно опустить:
void main() {
int value1 = 10, value2 = 20, value3 = 30, value4 = 40;
int result;
// Вызываем функцию с четырьмя параметрами
result = Summa(value1, value2, value3, value4);
print(“Сумма четырех чисел равна %d”, result);
// Вызываем функцию с тремя параметрами
result = Summa(value1, value2, value3);
print(“Сумма трех чисел равна %d”, result);
// Вызываем функцию с двумя параметрами,
// последний параметр задается по умолчанию
result = Summa(value1, value2);
print(“Сумма первых двух чисел равна %d”, result);
}