Введение
Часть I
C++
Глава 1. Основы
Структура проектов Borland C++
Переменные
Операторы
Функции
Указатели и ссылки
Использование указателей и ссылок с ключевым словом const
Дополнительная информация
Глава 2. Объекты и классы
Определение класса Использование класса Использование членов данных Использование функций-членов Дополнительная информация
Глава 3. Наследование
Повторное использование Наследование Сила наследования Ограничения наследования в C++ Различные точки зрения на наследование Простое наследование Множественное наследование Дополнительная информация
Глава 4. Перегрузка
Почему следует использовать перегрузку Перегрузка функций Перегрузка операторов Дополнительная информация
Глава 5. Полиморфизм
Раннее и позднее связывание
C++ - гибридный язык
Виртуальные функции
Пример полиморфизма
Разрешение видимости отключает полиморфизм
Виртуальные и невиртуальные функции
. Размещение vptr и vtab в памяти Переопределять виртуальные функции необязательно Быть или не быть виртуальной Виртуальные функции могут быть и приватными Дополнительная информация
Глава 6. Обработка исключений
Старые способы обработки исключений
Объектно-ориентированный подход к обработке исключений
Генерация исключения
Генерация исключений для инициализированных объектов
Перехватывание исключений
Перехватывание нетипизированных исключений
Использование нескольких блоков catch
Использование catch/throw вместо setjmp/longjmp
Поиск правильного обработчика исключения
Раскрутка стека
Исключения как объекты классов
Обработка исключений по ссылке
Иерархия типов исключений
Обработка общих ошибок с помощью исключений
Исключения и выделение ресурсов
Использование функциональных замыканий
Исключения и конструкторы
Исключения в объектах с подобъектами
Стандартные исключения C++
Обработка ошибок в OWL
Исключения TXOwl
Исключения TXCompatibility
Исключения TXGdi
Исключения TXlnvalidMainWindow
Исключения TXInvalidModule
Исключения TXMenu
Исключения TXOutOfMemory
Исключения TXPrinter
Исключения TXValidator
Исключения TXWindow
Обработка исключений в многозадачном коде
Спецификации интерфейса исключений
Функция unexpectedQ
Функция terminateO
Отладочные обращения к terminateO
Глава 7. Потоки
Недостатки подхода stdio Поток C++
Потоки как обобщенные фильтры
Стандартный потоковый ввод-вывод со встроенными типами данных Манипуляторы
Потоки и файловый ввод-вывод Форматирование в памяти Использование принтера в качестве потока Дополнительная информация . Иерархия streambuf Иерархия ios
Глава 8. Объектная библиотека контейнеров
Категории классов Класс AbstractArray Класс Array Класс Association Класс Bag Класс BaseDate Класс BaseTime Класс Btree Класс Collection Класс Container Класс Deque Класс Dictionary Класс DoubleList Класс Error Класс HashTable Класс List Класс Object Класс PriorityQueue Класс Queue Класс Set Класс Sortable Класс SortedArray Класс Stack Класс String Класс Time Итераторы
Глава 9. Библиотека шаблонов контейнеров
Контейнеры FDS и ADT
Контейнеры FDS
Парадигмы памяти FDS-контейнеров
FDS-контейнеры
FDS-контейнеры векторов
FDS-контейнеры списков
ADT-контейнеры
Управление памятью контейнеров
Массивы ADT
Упорядоченные массивы ADT
Стеки A DT
Прямые стеки ADT
Косвенные стеки ADT
Очереди и деки ADT
Множества и мультимножества ADT
Гетерогенные контейнеры ADT
Часть II OWL
Глава 10. Библиотека классов ObjectWindows
Использование отладочной версии OWL Точка входа OWL-приложений Настройка главного окна Диалоговые окна OWL Дочерние элементы управления OWL
Проверка правильности данных
Опции объектов проверки правильности
Пользовательские элементы управления
Использование пользовательских элементов управления BWCC
Грифы
Элементы управления, рисуемые владельцем
Кнопки с зависимой фиксацией, рисуемые владельцем
Глава 11. Приложения MDI
Иерархии окон
Настройка клиентной области MDI
Сообщения прорисовки рамки и клиентной области
Изменение атрибутов предопределенных классов Windows
Использование сплошных цветов фона
Использование размытых цветов фона
Перетаскивание объектов
Обработка сообщений клавиатуры
Главный цикл обработки сообщений
Функция TApplication::ProcessAppMsgO
Windows при включенной обработке сообщений клавиатуры
Дочерние окна MDI с элементами управления
Изменение фона дочернего окна MDI
Обработка элементов управления в дочернем окне MDI
Два конструктора для дочерних элементов управления
Различия между двумя конструкторами
Полный пример
Использование диалогового блока в качестве дочернего окна MDI
Меню в приложениях MDI
Замена главного меню
Слияние меню
Слияние меню в OLE 2.0
Как OWL сливает меню
Изменение состояния пунктов меню
Разрешение команд
Добавление галочек к командам меню
Глава 12. Модификация блока списка Позиции табуляции Установка позиций табуляции Небольшой пример Выход за пределы позиции табуляции Имитация позиций табуляции несколькими блоками списка Многоколонные блоки списка Блоки списка, рисуемые владельцем Без выхода за позиции табуляции
Глава 13. Программирование OLE с использованием OWL
Почему OLE
Недостатки OLE
OLE использует объекты
Как OLE-объекты "общаются" друг с другом
Подход Borland к OLE
OWL и OCF
Заключение