Теория и практика C++ — Книга Герберта Шилдта, одного из самых известных авторов компьютерной литературы, посвящена обсуждению сложных вопросов программирования. В ней подробно рассмотрены параметризованные функции и классы, а также такие задачи программирования, как реализация разреженных массивов, построение программ разбора математических выражений, алгоритмы шифрования и сжатия данных, а также проблемы разработки собственных языков программирования и написания интеграторов для них. Приводятся ценные практические советы по приемам и методам работы, а также тексты готовых работающих программ.
Название: Теория и практика C++ Автор: Г. Шилдт Издательство: BHV — Санкт-Петербург Год: 1999 Страниц: 416 Формат: PDF Размер: 13,4 МБ ISBN: 5-7791-0029-2 Качество: Отличное Язык: Русский
Содержание:
Введение Глава 1. Использование параметризованных функций Почему следует использовать параметр изо ванные функции? Обзор функций шаблонов Построение параметризованных функций сортировки Пузырьковая сортировка - злой дух перестановок Сортировка методом отбора Сортировка методом вставки Усовершенствованные методы сортировки Метод быстр ой сортировки Сравнение алгоритма быстрой сортировки со стандартной функцией qsort() Сортировка типов, определенных пользователем Поиск Бинарный поиск Рекомендации для самостоятельной разработки Глава 2. Исследование параметризованных классов Обзор параметр изо ванных классов Ограниченные массивы Очереди Стеки Связные списки Бинарные деревья Рекомендации для самостоятельной разработки Глава 3. Объектно-ориентированная программа разбора математических выражений Выражения Разбор выражений: постановка проблемы Разбор выражения Класс Parser Разбиение выражений Простая программа разбора выражений Включение в программу разбора выражений возможность работы с переменными Синтаксическая проверка в рекурсивно-нисходящем алгоритме разбора выражений Построение параметризованной версии программы разбора выражений Рекомендации для самостоятельной разработки Глава 4. Разреженные массивы в стиле С++ Цели разработки разреженных массивов Объекты типа разреженных массивов Разреженный массив на базе связного списка Разреженным массивы на основе бинарных деревьев Разреженные массивы на основе массивов указателей Хэширование Выбор подхода к реализации разреженных массивов Рекомендации для самостоятельной разработки Глава 5. Принцивы работы с информацией типа Run-time и ее использование Зачем нужна информация RTTI? Использование механизма typeid Рекомендации дл я самостоятельной разработки Глава 6. Строки: использование стандартного класса строк Почему стандартный класс string включен в определение С++? Конструкторы строк Операторы класса string Некоторые функции-члены класса string Простой строкаориентированный редактор, использующий класс string Рекомендации для самостоятельной разработки Глава 7. Шифрование и сжатие данных Краткая история криптографии Шифры замены Алгоритмы перестановок Шифры битовых манипуляций Сжатие данных Рекомендации для самостоятельной разработки Глава 8. Интерфейс с функциями языка ассемблера Для чего нужно использование языка ассемблера? Основные принципы интерфейса с языком ассемблера Соглашения о вызовах для компилятора С++ Несколько слов о моделях памяти Разработка функции на ассемблере Передача аргументов функции Вызов библиотечных функций и операторов Получение доступа к структурам и классам Использование указателей и ссылок Пример, использующий гигантскую (huge) модель памяти Ручная оптимизация Построение основы дл я кода на ассемблере Использование asm Рекомендации для самостоятельной разработки Глава 9. Создание и интеграция новых типов данных Теория множеств Определение типа множества Конструкторы и деструктор класса Set Добавление и удаление членов множества Определение членства Конструкт ор Сору Присваивание для множеств Перегруз ка оператора + Перегрузка оператора Пересечение множеств Симметричная разность Определение равенства, неравенства и подмножества Определение членства Преобразование в целое Перегрузка операторов ввода/вывода Демонстрационная программа работы с множествами Рекомендации для самостоятельной разработки Глава 10. Реализация языковых интерпретаторов на С++ Модуль разбора выражений Small BASIC Программа разбора выражений Small BASIC Интерпретатор Small BASIC Полный код интерпретатора Использование Small BASIC Глава 11. От С++ к Java Что представляет собой Java? Почему Java? Магическое решение Java: Java Bytecode Различия между Java и С++ Методы вместо функций Работа с классами Иерархия классов Java Классы и файлы Пакеты и импорт Рекомендации для самостоятельной разработки Приложеине А. Список ключевых слов С ++ Index