Введение. О чем эта книга
Организация книги

Часть I. Язык С

Глава 1. Основные принципы и понятия
Немного теории и терминологии
Процесс построения программы
Проблема раздельной компиляции
О библиотеках

Глава 2. Знакомство с C++Builder
Интегрированная среда разработки C++Builder
Редактор кода
Hello World
Hello World — консольное приложение
Hello World — приложение GUI
Пример DLL

Глава 3. Обзор языка С
Элементы простой программы
Комментарии
Директивы #pragma
Директивы #include
Функция main()
Представление данных в С
Литералы
Встроенные типы данных
Переменные
Типизированные константы
Операции и выражения
Семантика операций
Функции
Ввод и вывод в С
Пример функции
Область действия переменных и связанные с ней понятия
Управляющие конструкции С
Условный оператор if...else
Оператор выбора switch
Циклы
Операторы прерывания блока
Блоки и локальные переменные
Массивы и указатели
Массивы
Указатели
Указатели и массивы
Типы, определяемые пользователем
Переименование типов
Перечислимые типы
Структуры
Объединения

Глава 4. Препроцессор и особенности компилятора
Директивы препроцессора
Макроопределения
Директива #include
Условная компиляция
Директива #error
Директива #liпе
Директива #pragma
Типичное применение препроцессорных директив
Особенности C++Builder
Расширения языка С
Управление компилятором
Страница Compiler
Страница Advanced Compiler
Страница Directories/Conditionals

Глава 5. Отладка программ
Предварительные шаги
Отладочные пункты меню
Элементы отладки
Контрольные точки
Наблюдение за переменными
Другие инструменты отладки
Пошаговое исполнение кода

Часть II. Объектно-ориентированное программирование и язык C++

Глава 6. Модифицированный С
Отличия C++ от ANSI С
Указатели типа void*
Символьные типы
Символьные константы
Глобальные константы
«Улучшенный С»
Дополнительные обозначения операций
Тип Ьооl
Тип wchar_t
Модификатор const
Объявления переменных
Имена-этикетки
Анонимные объединения
Аргументы по умолчанию
Ссылки
Расширяемые функции
Операция разрешения области действия
Пространства имен
Перегруженные функции
Операции распределения памяти

Глава 7. Объектно-ориентированное программирование
Об объектном подходе к программированию
Объект
Класс
Введение в классы C++
Определение класса

Глава 8. Классы C++
Элементы класса
Элементы данных
Элементы-функции
Класс как область действия
Доступ к элементам данных
Вызов функций-элементов класса
Указатель this
Статические элементы класса
Статические элементы данных
Статические элементы-функции
Специальные функции-элементы класса
Конструктор
Конструктор копии
Операция присваивания
Деструктор
Операции класса new и delete
Функции преобразования
Константные объекты и функции-элементы
Ключевое слово mutable
«Друзья»
Перегрузка функций-элементов
Перегрузка операций
Примеры
Операция вызова объекта
Некоторые замечания
Наследование
Доступ к базовым классам
Простое наследование
Конструкторы, деструкторы и наследование
Сложное наследование
Виртуальные функции
Чисто виртуальные функции и абстрактные классы
Реализация виртуального механизма

Глава 9. Потоки ввода-вывода
Классы потоков
Предопределенные потоки
Операции извлечения и передачи в поток
Перегруженные операции для встроенных типов
Форматирование
Форматирующие функции-элементы
Манипуляторы
Форматирующие флаги
Состояние потока
Файловые потоки
Конструирование объекта потока
Режимы открытия файла
Закрытие файла
Примеры файловых потоков
Бесформатный ввод-вывод
Двоичный режим ввода-вывода
Чтение и запись сырых данных
Некоторые функции потоков
Чтение символов и строк
Ввод-вывод с произвольным доступом

Глава 10. Шаблоны
Шаблоны функций
Перегрузка шаблонов функций
Специализация шаблона функции
Шаблоны классов
Определение шаблона класса
Создание представителей шаблона
Разное
Порождение представителей шаблона
Установки проекта и ключи компилятора
Ключи компилятора
Явное создание представителя шаблона
Ключевое слово typename

Глава 11. Библиотека стандартных шаблонов
Введение в библиотеку стандартных шаблонов
Состав библиотеки
Заголовочные файлы
Итераторы
Функции и функциональные объекты
Контейнеры
Векторы
Списки
Очереди deque
Множества и мультимножества
Битовые множества
Карты м мультикарты
Стеки
Очереди
Приоритетные очереди
Алгоритмы
Накопление
Подсчет
Поиск и замена
Удаление элементов
Перестановка
Лексикографическое сравнение
Сортировка
Стандартные строки
Создание строк
Характеристики строк
Ввод и вывод строк
Операции над строками
Функции строк

Глава 12. Управление исключениями
Основные синтаксические конструкции
Блок try
Блок catch
Оператор throw
Спецификации исключений
Механика исключений
Исключения и стек
Поиск обработчика и неуправляемые исключения
Исключения и классы
Исключения, конструкторы и деструкторы
Классы исключений
Предопределенные исключения
Информация об исключении
Установки компилятора
О системных исключениях
SEH в С++
Процессорные исключения

Глава 13. RTTI и приведение типов
RTTI
Операция typeid
type_info
bad_typeid
Специальные операции приведения типа
reinterpret_cast
const_cast
static_cast
dynamic_cast

Часть III. Визуальное программирование в C++Builder

Глава 14. Введение в визуальное программирование
Простой пример
Установка свойств компонентов
Ввод кода событий
Класс формы
Компоненты, свойства и события
Компоненты
Поля и методы
Свойства
События
Еще один пример
Форма
Код

Глава 15. Создание визуальных компонентов
Расширение набора ключевых слов
_classic
_closure
_property
_published
_declspec
_thread
Пример создания компонента
Начало разработки
Код компонента
Разбор кода
Тестирование компонента
Установка компонента
Окончательное тестирование
Пример применения компонента
Приложение. Классы AnsiString и Set
Класс AnsiString
Методы
Класс Set