15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту

 

Теория и практика C++
Г. Шилдт

Содержание

    Введение
    Глава 1. Использование параметризованных функций

      Почему следует использовать параметризованные функции?
      Обзор функций шаблонов
      Построение параметризованных функций сортировки
      Пузырьковая сортировка - злой дух перестановок.
      Сортировка методом отбора
      Сортировка методом вставки
      Усовершенствованные методы сортировки
      Метод быстрой сортировки
      Сравнение алгоритма быстрой сортировки со стандартной функцией qsort ()
      Сортировка типов, определенных пользователем
      Поиск
      Бинарный поиск
      Рекомендации для самостоятельной разработки

    Глава 2. Исследование параметризованных классов

      Обзор параметризованных классов
      Ограниченные массивы
      Очереди
      Стеки
      Связные списки
      Бинарные деревья
      Рекомендации для самостоятельной разработки

    Глава 3. Объектно-ориентированная программа разбора математических выражений

      Выражения
      Разбор выражений: постановка проблемы
      Разбор выражения
      Класс Parser
      Разбиение выражений
      Простая программа разбора выражений
      Включение в программу разбора выражений
      возможность работы с переменными
      Синтаксическая проверка в рекурсивно-нисходящем алгоритме
      разбора выражений
      Построение параметризованной версии программы
      разбора выражений
      Рекомендации для самостоятельной разработки

    Глава 4. Разреженные массивы в стиле C++

      Цели разработки разреженных массивов
      Объекты типа разреженных массивов
      Разреженный массив на базе связного списка
      Разреженным массивы на основе бинарных деревьев
      Разреженные массивы на основе массивов указателей
      Хэширование
      Выбор подхода к реализации разреженных массивов
      Рекомендации для самостоятельной разработки

    Глава 5. Принципы работы с информацией типа Run-time и ее использование

      Зачем нужна информация RTTI?
      Использование механизма typeid
      Использование механизма dynamic_cast
      Применение RTTI
      Рекомендации для самостоятельной разработки

    Глава 6. Строки: использование стандартного класса строк

      Почему стандартный класс string включен в определение C++?
      Конструкторы строк
      Операторы класса string
      Некоторые функции-члены класса string
      Простой строкоориентированный редактор, использующий класс string
      Рекомендации для самостоятельной разработки

    Глава 7. Шифрование и сжатие данных

      Краткая история криптографии
      Шифры замены
      Алгоритмы перестановок
      Шифры битовых манипуляций
      Сжатие данных
      Рекомендации для самостоятельной разработки

    Глава 8. Интерфейс с функциями языка ассемблера

      Для чего нужно использование языка ассемблера?
      Основные принципы интерфейса с языком ассемблера
      Соглашения о вызовах для компилятора C++
      Несколько слов о моделях памяти
      Разработка функции на ассемблере
      Передача аргументов функции
      Вызов библиотечных функций и операторов
      Получение доступа к структурам и классам
      Использование указателей и ссылок
      Пример, использующий гигантскую (huge) модель памяти
      Ручная оптимизация
      Построение основы для кода на ассемблере
      Использование asm
      Рекомендации для самостоятельной разработки

    Глава 9. Создание и интеграция новых типов данных

      Теория множеств
      Определение типа множества
      Конструкторы и деструктор класса Set
      Добавление и удаление членов множества
      Определение членства
      Конструктор Copy
      Присваивание для множеств
      Перегрузка оператора+
      Перегрузка оператора -
      Пересечение множеств
      Симметричная разность
      Определение равенства, неравенства и подмножества
      Определение членства
      Преобразование в целое
      Перегрузка операторов ввода/вывода
      Демонстрационная программа работы с множествами
      Рекомендации для самостоятельной разработки

    Глава 10. Реализация языковых интерпретаторов на C++

      Модуль разбора выражений Small BASIC
      Программа разбора выражений Small BASIC
      Интерпретатор Small BASIC
      Полный код интерпретатора
      Использование Small BASIC

    Глава 11. От C++ к Java

      Что представляет собой Java?
      Почему Java?
      Магическое решение Java: Java Bytecode
      Различия между Java и C++
      Методы вместо функций
      Работа с классами
      Иерархия классов Java
      Классы и файлы
      Пакеты и импорт
      Рекомендации для самостоятельной разработки
      Приложение А. Список ключевых слов С++
      Index