Современное проектирование на C++
Book information
Description
ОГЛАВЛЕНИЕ СОДЕРЖАНИЕ ПРЕДИСЛОВИЕ СКОТТА МЕЙЕРСА ПРЕДИСЛОВИЕ ДЖОНА ВЛИССИДЕСА ПРЕДИСЛОВИЕ Аудитория Библиотека Loki Структура книги БЛАГОДАРНОСТИ Часть I. Методы 1. РАЗРАБОТКА КЛАССОВ НА ОСНОВЕ СТРАТЕГИЙ 1.1. Разнообразие методов разработки программногообеспечения 1.2. Недостатки универсального интерфейса 1.3. Может ли помочь множественное наследование? 1.4. Преимущества шаблонов 1.5. Стратегии и классы стратегий 1.5.1. Реализация классов стратегий с помощью шаблонных шаблонных параметров 1.5.2. Реализация классов стратегий с помощью шаблонных функций-членов 1.6. Расширенные стратегии 1.7. Деструкторы классов стратегий 1.8. Факультативные возможности, предоставляемые неполной конкретизацией 1.9. Комбинирование классов стратегий 1.10. Настройка структур с помощью классов стратегий 1.11. Совместимые и несовместимые стратегии 1.12. Разложение классов на стратегии 1.13. Резюме 2. ПРИЕМЫ ПРОГРАММИРОВАНИЯ 2.1. Статическая проверка диагностических утверждений 2.2. Частичная специализация шаблонов 2.3. Локальные классы 2.4. Отображение целочисленных констант в типы 2.5. Отображение одного типа в другой 2.6. Выбор типа 2.7. Распознавание конвертируемости и наследования на этапе компиляции 2.8. Оболочка вокруг класса type_info 2.9. Классы NullType и EmptyType 2.10. Характеристики типов 2.10.1. Реализация характеристик указателей 2.10.2. Распознавание основных типов 2.10.3. Оптимальные типы параметров 2.10.4. Удаление квалификаторов 2.10.5. Применение класса TypeTraits 2.10.6. Заключение 2.11. Резюме 3. СПИСКИ ТИПОВ 3.1. Зачем нужны списки типов 3.2. Определение списков типов 3.3. Линеаризация создания списков типов 3.4. Вычисление длины списка 3.5. Интермеццо 3.6. Индексированный доступ 3.7. Поиск элемента 3.8. Добавление элемента 3.9. Удаление элемента 3.10. Удаление дубликатов 3.11. Замена элемента 3.12. Частично упорядоченные списки типов 3.13. Генерация класса на основе списка типов 3.13.1. Генерация распределенных иерархий 3.13.2. Генерация кортежей 3.13.3. Генерация линейных иерархий 3.14. Резюме 3.15. Краткое описание класса Typelist 4. РАЗМЕЩЕНИЕ В ПАМЯТИ НЕБОЛЬШИХ ОБЪЕКТОВ 4.1. Стандартный механизм распределениядинамической памяти 4.2. Как работает стандартный механизмраспределения динамической памяти 4.3. Распределитель памяти для небольших объектов 4.4. Класс Chunk 4.5. Класс FixedAllocator 4.6. Класс SmallObjAllocator 4.7. Трюк 4.8. Просто, сложно и снова просто 4.9. Применение 4.10. Резюме 4.11. Краткое описание механизма распределенияпамяти для небольших объектов Часть II. Компоненты 5. ОБОБЩЕННЫЕ ФУНКТОРЫ 5.1. Шаблон Command 5.2. Шаблон Command в реальном мире 5.3. Вызываемые сущности в языке С++ 5.4. Скелет шаблонного класса Functor 5.5. Реализация оператора пересылки Functor::operator() 5.6. Работа с функторами 5.7. Один пишем, два в уме 5.8. Преобразование типов аргументови возвращаемого значения 5.9. Указатели на функции-члены 5.10. Связывание 5.11. Сцепление 5.12. Первая практическая проблема: стоимость функций пересылки 5.13. Вторая практическая проблема: распределение динамической памяти 5.14. Реализация операций Undo и Redo с помощью класса Functor 5.15. Резюме 5.16. Краткое описание класса Functor 6. РЕАЛИЗАЦИЯ ШАБЛОНА SINGLETON 6.1. Статические данные + статические функции != синглтон 6.2. Основные идиомы языка С++ для поддержки синглтонов 6.3. Обеспечение уникальности синглтонов 6.4. Разрушение объектов класса Singleton 6.5. Проблема висячей ссылки 6.6. Проблема висячей ссылки (I): феникс 6.6.1. Проблемы, связанные с функцией atexit 6.7. Проблема висячей ссылки (II): синглтон с заданнойпродолжительностью жизни 6.8. Реализация синглтонов, имеющих заданнуюпродолжительность жизни 6.9. Продолжительность жизни объектов в многопоточной среде 6.9.1. Шаблон блокировки с двойной проверкой 6.10. Сборка 6.10.1. Разложение класса SingletonHolder на стратегии 6.10.2. Требования, предъявляемые к стратегиям класса SingletonHolder 6.10.3. Сборка класса SingletonHolder 6.10.4. Реализации стратегий 6.11. Работа с классом SingletonHodler 6.12. Резюме 6.13. Краткое описание шаблонного класса SingletonHolder 7. ИНТЕЛЛЕКТУАЛЬНЫЕ УКАЗАТЕЛИ 7.1. Сто первое описание интеллектуальных указателей 7.2. Особенности интеллектуальных указателей 7.3. Хранение интеллектуальных указателей 7.4. Функции-члены интеллектуальных указателей 7.5. Стратегии владения 7.5.1. Глубокое копирование 7.5.2. Копирование при записи 7.5.3. Подсчет ссылок 7.5.4. Связывание ссылок 7.5.5. Разрушающее копирование 7.6. Оператор взятия адреса 7.7. Неявное приведение к типам обычных указателей 7.8. Равенство и неравенство 7.9. Отношения порядка 7.10. Обнаружение и регистрация ошибок 7.10.1. Проверка во время инициализации 7.10.2. Проверка перед разыменованием 7.10.3. Сообщения об ошибках 7.11. Интеллектуальные указатели на константные объекты и константные интеллектуальные указатели 7.12. Массивы 7.13. Интеллектуальные указатели и многопоточность 7.13.1. Многопоточность на уровне объектов 7.13.2. Многопоточность на уровне регистрации данных 7.13.2.1. Многопоточный подсчет ссылок 7.13.2.2. Многопоточное связывание ссылок 7.14. Сборка 7.14.1. Многопоточность на уровне объектов 7.14.2. Стратегия Ownership 7.14.3. Стратегия Conversion 7.14.4. Стратегия Checking 7.15. Резюме 7.16. Краткий обзор класса SmartPtr 8. ФАБРИКИ ОБЪЕКТОВ 8.1. Для чего нужны фабрики объектов 8.2. Фабрики объектов в языке С++: классы и объекты 8.3. Реализация фабрики объектов 8.4. Идентификаторы типов 8.5. Обобщение 8.6. Мелкие детали 8.7. Фабрика клонирования 8.8. Использование фабрики объектов в сочетании с другими обобщенными компонентами 8.9. Резюме 8.10. Краткий обзор шаблонного класса Factory 8.11. Краткий обзор шаблонного класса CloneFactory 9. ШАБЛОН ABSTRACT FACTORY 9.1. Архитектурная роль шаблона Abstract Factory 9.2. Обобщенный интерфейс шаблона Abstract Factory 9.3. Реализация класса AbstractFactory 9.4. Реализация шаблона Abstract Factory на основе прототипов 9.5. Резюме 9.6. Краткий обзор классов AbstractFactory и ConcreteFactory 10. ШАБЛОН VISITOR 10.1. Основы шаблона Visitor 10.2. Перегрузка и функция-ловушка 10.3. Уточнение реализации: шаблон Acyclic Visitor 10.4. Обобщенная реализация шаблона Visitor 10.5. Назад — к ‘‘простому’’ шаблону Visitor 10.6. Отладка вариантов 10.6.1. Функция-ловушка 10.6.2. Нестрогое инспектирование 10.7. Резюме 10.8. Краткий обзор обобщенных компонентов шаблона Visitor 11. МУЛЬТИМЕТОДЫ 11.1. Что такое мультиметоды? 11.2. Когда нужны мультиметоды 11.3. Двойное переключение по типу: грубый подход 11.4. Автоматизированный грубый подход 11.5. Симметричность грубого подхода 11.6. Логарифмический двойной диспетчер 11.6.1. Логарифмический диспетчер и наследование 11.6.2. Логарифмический диспетчер и приведение типов 11.7. Класс FnDispatcher и симметрия 11.8. Двойная диспетчеризация функторов 11.9. Преобразование аргументов: static_cast или dynamic_cast? 11.10. Мультиметоды с постоянным временемвыполнения 11.11. Классы BasicDispatcher и BasicFastDispatcher какстратегии 11.12. Перспективы 11.13. Резюме 11.14. Краткий обзор двойных диспетчеров ПРИЛОЖЕНИЕ. МНОГОПОТОЧНАЯ БИБЛИОТЕКА В СТИЛЕ МИНИМАЛИЗМА П.1. Критика многопоточности П.2. Подход, реализованный в библиотеке Loki П.3. Атомарные операции с целочисленными типами П.4. Мьютексы П.5. Семантика блокировки в объектно-ориентированном программировании П.6. Модификатор volatile П.7. Семафоры, события и другие полезные вещи П.8. Резюме БИБЛИОГРАФИЯ ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ
Similar books
Стандарты программирования на С++. 101 правило и рекомендация
2008 · PDF
Стандарты программирования на С++
2008 · PDF
Стандарты программирования на С++
2005 · PDF
Методология научных исследований и прикладной аналитики: Учебник. Изд. 5-е, дополн. и перераб. В 2 т. Т.2: Научные исследования: Мастерство и искусство научного мышления и научной работы / Methodology of Scientific Research and Practical Analytics: A Textbook: Fifth Edition. In two volumes. Vol.2: Scientific research: Art of scientific thinking and scientific work / Méthodologie de la recherche scientifique et de l’analytique appliquée: Manuel: Cinquième édition. En 2 tomes. T.2: Recherches scientifiques: Art de la pensée scientifique et du travail scientifique
2025 · PDF
Методы и понятия философии искусства: практикум : уровень подготовки кадров высшей квалификации: ассиснтурв-стажировка : специальности: 54.09.03 "Искусство дизайна (по видам)", 54.09.02 "Мастерство декоративно-прикладного искусства и народных промыслов (по видам)" : укрупненная группа специальностей: 54.00.00 "Изобразительное и прикладные виды искусств" : квалификация выпускника: "Преподаватель творческих дисциплин в высшей школе. Дизайнер", "Преподаватель творческих дисциплин в высшей школе. Художник декоративно-прикладного искусства" : форма обучения: очная
2022 · PDF
Разработка графического интерфейса пользователя информационной системы с использованием библиотеки QT: учебное пособие для студентов 1 курса направлений подготовки 09.04.02 "Информационные системы и технологии", 27.04.03 "Системный анализ и управление" очной формы обучения, 2 курса направления подготовки 10.05.03 "Информационная безопасность автоматизированных систем" очной формы обучения и 3 курса направления подготовки 09.03.02 "Информационные системы и технологии" очной и заочной форм обучения : учебное электронное издание
2021 · PDF
Археологические культуры Сибири в контексте кросс-культурных контактов в Евразии: к 300-летию первых научных археологических раскопок в Сибири (1722 г.) =: Archaeological Cultures of Siberia in the context of Cross-cultural contacts in Eurasia: dedicated to the 300th anniversary of the first scientific archaeological excavations in Siberia (1722) : материалы Международной археологической конференции молодых исследователей "Археологические культуры Сибири в контексте кросс-культурных контактов в Евразии: к 300-летию первых научных археологических раскопок в Сибири (1722 г.)" (Новосибирск, 21-25 ноября 2022 г.)
2022 · PDF
Трешниковские чтения - 2023. Современная географическая картина мира и технологии географического образования =: Treshnikov readings - 2023. Modern geographical global picture and technology of geographic education : материалы Всероссийской научно-практической конференции с международным участием, посвящённой памяти знаменитого российского океанолога, исследователя Арктики и Антарктики, академика Алексея Фёдоровича Трёшникова и 60-летию Ульяновского областного отделения Всероссийской общественной организации "Русское гаографическое общество" (13 апреля 2023)
2023 · PDF