Читаем Программирование. Принципы и практика использования C++ Исправленное издание полностью

  16.1. Альтернативы пользовательского интерфейса

  16.2. Кнопка Next

  16.3. Простое окно

   16.3.1. Функции обратного вызова

   16.3.2. Цикл ожидания

  16.4. Класс Button и другие разновидности класса Widget

   16.4.1. Класс Widget

   16.4.2. Класс Button

   16.4.3. Классы In_box и Out_box

   16.4.4. Класс Menu

  16.5. Пример

  16.6. Инверсия управления

  16.7. Добавление меню

  16.8. Отладка программы графического пользовательского интерфейса

Часть III Данные и алгоритмы

Глава 17 Векторы и свободная память

  17.1. Введение

  17.2. Основы

  17.3. Память, адреса и указатели

   17.3.1. Оператор sizeof

  17.4. Свободная память и указатели

   17.4.1. Размещение в свободной памяти

   17.4.2. Доступ с помощью указателей

   17.4.3. Диапазоны

   17.4.4. Инициализация

   17.4.5. Нулевой указатель

   17.4.6. Освобождение свободной памяти

  17.5. Деструкторы

   17.5.1. Обобщенные указатели

   17.5.2. Деструкторы и свободная память

  17.6. Доступ к элементам

  17.7. Указатели на объекты класса

  17.8. Путаница с типами: void* и операторы приведения типов

  17.9. Указатели и ссылки

   17.9.1. Указатели и ссылки как параметры функций

   17.9.2. Указатели, ссылки и наследование

   17.9.3. Пример: списки

   17.9.4. Операции над списками

   17.9.5. Использование списков

   17.10. Указатель this

   17.10.1. Еще раз об использовании списков

Глава 18 Векторы и массивы

  18.1. Введение

  18.2. Копирование

   18.2.1. Конструкторы копирования

   18.2.2. Копирующее присваивание

   18.2.3. Терминология, связанная с копированием

  18.3. Основные операции

   18.3.1. Явные конструкторы

   18.3.2. Отладка конструкторов и деструкторов

  18.4. Доступ к элементам вектора

   18.4.1. Перегрузка ключевого слова const

  18.5. Массивы

   18.5.1. Указатели на элементы массива

   18.5.2. Указатели и массивы

   18.5.3. Инициализация массива

   18.5.4. Проблемы с указателями

  18.6. Примеры: палиндром

   18.6.1. Палиндромы, созданные с помощью класса string

   18.6.2. Палиндромы, созданные с помощью массива

   18.6.3. Палиндромы, созданные с помощью указателей

Глава 19 Векторы, шаблоны и исключения

  19.1. Проблемы

  19.2. Изменение размера

   19.2.1. Представление

   19.2.2. Функции reserve и capacity

   19.2.3. Функция resize

   19.2.4. Функция push_back

   19.2.5. Присваивание

   19.2.6. Предыдущая версия класса vector

  19.3. Шаблоны

   19.3.1. Типы как шаблонные параметры

   19.3.2. Обобщенное программирование

   19.3.3. Контейнеры и наследование

   19.3.4. Целые типы как шаблонные параметры

   19.3.5. Вывод шаблонных аргументов

   19.3.6. Обобщение класса vector

  19.4. Проверка диапазона и исключения

   19.4.1. Примечание: вопросы проектирования

    19.4.1.1. Совместимость

    19.4.1.2. Эффективность

    19.4.1.3. Ограничения

    19.4.1.4. Необязательная проверка

Перейти на страницу:

Похожие книги

Programming with POSIX® Threads
Programming with POSIX® Threads

With this practical book, you will attain a solid understanding of threads and will discover how to put this powerful mode of programming to work in real-world applications. The primary advantage of threaded programming is that it enables your applications to accomplish more than one task at the same time by using the number-crunching power of multiprocessor parallelism and by automatically exploiting I/O concurrency in your code, even on a single processor machine. The result: applications that are faster, more responsive to users, and often easier to maintain. Threaded programming is particularly well suited to network programming where it helps alleviate the bottleneck of slow network I/O. This book offers an in-depth description of the IEEE operating system interface standard, POSIX (Portable Operating System Interface) threads, commonly called Pthreads. Written for experienced C programmers, but assuming no previous knowledge of threads, the book explains basic concepts such as asynchronous programming, the lifecycle of a thread, and synchronization. You then move to more advanced topics such as attributes objects, thread-specific data, and realtime scheduling. An entire chapter is devoted to "real code," with a look at barriers, read/write locks, the work queue manager, and how to utilize existing libraries. In addition, the book tackles one of the thorniest problems faced by thread programmers-debugging-with valuable suggestions on how to avoid code errors and performance problems from the outset. Numerous annotated examples are used to illustrate real-world concepts. A Pthreads mini-reference and a look at future standardization are also included.

David Butenhof

Программирование, программы, базы данных