Язык программирования C# и платформа .NET.
О Научном Редакторе. Благодарности. Вы И Я – Одна Команда. Обзор Содержимого Книги. Часть 1. Общие Сведения О Языке C# И Платформе .Net. Часть II. Язык Программирования C# Часть III. Программирование Компоновочных Блоков .Net. Часть IV. Программирование С Помощью Библиотек .Net. Часть V. Web-Приложения И Web-Сервисы XML. Исходный Код Примеров Книги. Связь С Автором. Часть I. Общие Сведения О Языке C# И Платформе .Net. Глава 1. Философия .Net. Предыдущее Состояние Дел. Подход C/Win32 Api. Подход C++/Mfc. Подход …Visual Basic 6.0. Подход Java/J2Ee. Подход Com. Подход Windows Dna. Решение .Net. Главные Компоненты Платформы .Net (Clr, Cts И Cls). Роль Библиотек Базовых Классов. Роль Языка C# Другие Языки Программирования С Поддержкой .Net. Жизнь В Многоязычном Окружении. Компоновочные Блоки .Net. Одномодульные И Многомодульные Компоновочные Блоки. Роль CIL. Преимущества CIL. Преобразование CIL-Кода В Набор Инструкций, Соответствующих Платформе. Роль Метаданных Типов .Net. Роль Манифеста Компоновочного Блока. Общая Система Типов. Тип Класса. Тип Структуры. Тип Интерфейса. Тип Перечня. Тип Делегата. Члены Типов. Встроенные Типы Данных Cts. Общеязыковые Спецификации. Гарантия Cls-Совместимости. Общеязыковая Среда Выполнения. Различия Между Компоновочными Блоками, Пространствами Имен И Типами. Программный Доступ К Пространствам Имен. Ссылки На Внешние Компоновочные Блоки. Использование Ildasm.Exe. Просмотр CIL-Кода. Просмотр Метаданных Типов. Просмотр Метаданных Компоновочных Блоков. Инсталляция Среды Выполнения .Net. Платформенная Независимость .Net. Резюме. Глава 2. Технология Создания Приложений На Языке C# Установка .Net Framework 2.0 Sdk. Компилятор Командной Строки Для C# (Csc.Exe). Настройка Компилятора Командной Строки Для C# Дополнительные Средства Командной Строки .Net. Компоновка C#-Приложений С Помощью Csc.Exe. Ссылки На Внешний Компоновочный Блок. Компиляция Множества Файлов. Ссылки На Множество Внешних Компоновочных Блоков. Работа С Ответными Файлами Csc.Exe. Ответный Файл, Используемый По Умолчанию (Csc.Rsp). Отладчик Командной Строки (Cordbg.Exe). Отладка С Командной Строки. Компоновка .Net-Приложений С Помощью Textpad. Активизация Цветовой Схемы C# Настройка Фильтра Файлов *.Cs. Подключение Csc.Exe. Ассоциация Команд С Пунктами Меню. Использование Фрагментов Программного Кода C# Компоновка .Net-Приложений С Помощью Sharpdevelop. Возможности Sharpdevelop. Окна Проектов И Классов. Обзор Компоновочных Блоков. Инструменты Проектирования Windows Forms. Компоновка .Net-Приложений С Помощью Visual C# 2005 Express. Компоновка .Net-Приложений С Помощью Visual Studio 2005. Возможности Visual Studio 2005. Утилита Обзора Решений. Утилита Обзора Классов. Окно Определений Программного Кода. Утилита Обзора Объектов. Интегрированная Поддержка Факторизации Программного Кода. Фрагменты Программного Кода И Окружения. Средства Визуального Проектирования Классов. Стенд Тестирования Объектов (Отв-Тестер). Интегрированная Справочная Система. Дополнительные Средства Разработки .Net-Приложений. Резюме. Часть II. Язык Программирования C# Глава 3. Основы Языка C# Структура Простой Программы На C# Вариации Метода Main(). Обработка Аргументов Командной Строки. Использование Аргументов Командной Строки В Visual Studio 2005. Несколько Слов О Классе System.Environment. Определение Классов И Создание Объектов. Роль Конструкторов. Утечка Памяти. Определение "Объекта Приложения". Класс System.Console. Ввод И Вывод В Классе Console. Форматирование Консольного Вывода. Флаги Форматирования Строк .Net. Доступность Членов. Доступность Типов. Значения, Назначаемые Переменным По Умолчанию. Значения, Назначаемые По Умолчанию, И Локальные Переменные. Синтаксис Инициализации Членов-Переменных. Определение Констант. Ссылки На Константы. Определение Полей Только Для Чтения. Статические Поля Только Для Чтения. Ключевое Слово Static. Статические Методы. Статические Данные. Статические Конструкторы. Статические Классы. Модификаторы Параметров Методов. Способ Передачи Параметров, Используемый По Умолчанию. Модификатор Out. Модификатор Ref. Модификатор Params. Итерационные Конструкции. Цикл For. Цикл Foreach. Конструкции While И Do/While. Конструкции Выбора Решений И Операции Сравнения. Оператор If/Else. Оператор Switch. Типы, Характеризуемые Значениями, И Ссылочные Типы. Типы, Характеризуемые Значениями, Ссылочные Типы И Оператор Присваивания. Типы, Характеризуемые Значениями И Содержащие Ссылочные Типы. Передача Ссылочных Типов По Значению. Передача Ссылочных Типов По Ссылке. Типы, Характеризуемые Значениями, И Ссылочные Типы: Заключительные Замечания. Операции Создания Объектного Образа И Восстановления Из Объектного Образа. Примеры Создания Объектных Образов И Восстановления Значений. Восстановление Из Объектного Образа Для Пользовательских Типов. Работа С Перечнями .Net. Базовый Класс System.Enum. Мастер-Класс: System.Object. Поведение System.Object, Заданное По Умолчанию. Переопределение Элементов System.Object, Заданных По Умолчанию. Переопределение System.Object.Tostring(). Переопределение System.Object. Equals(). Переопределение System.Object.Gethashcode(). Тестирование Переопределенных Членов. Статические Члены System.Object. Типы Данных System (И Их Обозначения В C#). Эксперименты С Числовыми Типами Данных. Члены System.Boolean. Члены System.Char. Анализ Значений Строковых Данных. System.Datetime И System.Timespan. Тип Данных System.String. Базовые Операции Со Строками. Управляющие Последовательности. Буквальное Воспроизведение Строк В C# Роль System.Text.Stringbuilder. Типы Массивов .Net. Массивы В Качестве Параметров (И Возвращаемых Значений). Работа С Многомерными Массивами. Базовый Класс System.Array. Типы С Разрешением Принимать Значение Null. Работа С Типами, Для Которых Допустимы Значения Null. Операция ?? Пользовательские Пространства Имен. Абсолютные Имена Типов. Использование Псевдонимов. Вложенные Пространства Имен. Пространство Имен По Умолчанию В Visual Studio 2005. Резюме. Глава 4. Язык C# 2.0 И Объектно-Ориентированный Подход. Тип Класса В C# Перегрузка Методов. Использование This Для Возвратных Ссылок В C# Передача Вызовов Конструктора С Помощью This. Определение Открытого Интерфейса Класса. Принципы Объектно-Ориентированного Программирования. Инкапсуляция. Наследование. Полиморфизм. Первый Принцип: Сервис Инкапсуляции C# Инкапсуляция На Основе Методов Чтения И Модификации. Инкапсуляция На Основе Свойств Класса. Внутреннее Представление Свойств В C# Контекст Операторов Get И Set Для Свойств. Свойства, Доступные Только Для Чтения, И Свойства, Доступные Только Для Записи. Статические Свойства. Второй Принцип: Поддержка Наследования В C# Управление Созданием Базовых Классов С Помощью Base. Множественные Базовые Классы. Хранение Семейных Тайн: Ключевое Слово Protected. Запрет Наследования: Изолированные Классы. Модель Локализации/Делегирования. Вложенные Определения Типов. Третий Принцип: Поддержка Полиморфизма В C# Ключевые Слова Virtual И Override. Снова О Ключевом Слове Sealed. Абстрактные Классы. Принудительный Полиморфизм: Абстрактные Методы. Возможность Скрывать Члены. Правила Приведения Типов В C# Распознавание Типов. Приведение Числовых Типов. Парциальные Типы C# Документирование Исходного Кода В C# С Помощью XML. Символы Форматирования В XML-Коде Комментариев. Трансформация XML-Кода Комментариев. Резюме. Глава 5. Цикл Существования Объектов. Классы, Объекты И Ссылки. Основные Сведения О Существовании Объектов. CIL-Код Для New. Роль Корней Приложения. Генерации Объектов. Тип System.Gc. Активизация Сборки Мусора. Создание Объектов, Предусматривающих Финализацию. Переопределение System.Object.Finalize(). Детали Процесса Финализации. Создание Объектов, Предусматривающих Освобождение Ресурсов. Снова О Ключевом Слове Using В C# Создание Типов, Предусматривающих Освобождение Ресурсов И Финализацию. Формализованный Шаблон Освобождения Ресурсов. Резюме. Глава 6. Структурированная Обработка Исключений. Ода Ошибкам И Исключениям. Роль Обработки Исключений В .Net. Атомы Обработки Исключений В .Net. Базовый Класс System.Exception. Простейший Пример. Генерирование Исключений. Обработка Исключений. Конфигурация Состояния Исключений. Свойство Targetsite. Свойство Stacktrace. Свойство Helplink. Свойство Data. Исключения Системного Уровня (System.Systemexception). Исключения Уровня Приложения (System.Applicationexception). Создание Пользовательских Исключений, Раз… Создание Пользовательских Исключений, Два… Создание Пользовательских Исключений, Три! Обработка Множеств Исключений. Общие Операторы Catch. Генерирование Вторичных Исключений. Внутренние Исключения. Блок Finally. Что И Чем Генерируется. Исключения, Оставшиеся Без Обработки. Отладка Необработанных Исключений В Visual Studio 2005. Резюме. Глава 7. Интерфейсы И Коллекции. Определение Интерфейсов В C# Реализация Интерфейсов В C# Интерфейсы В Сравнении С Абстрактными Базовыми Классами. Вызов Членов Интерфейса На Уровне Объекта. Получение Интерфейсных Ссылок: Ключевое Слово As. Получение Интерфейсных Ссылок: Ключевое Слово Is. Интерфейсы В Качестве Параметров. Интерфейсы В Качестве Возвращаемых Значений. Массивы Интерфейсных Типов. Явная Реализация Интерфейса. Разрешение Конфликтов Имен. Построение Иерархии Интерфейсов. Интерфейсы С Множеством Базовых Интерфейсов. Реализация Интерфейсов В Visual Studio 2005. Создание Перечислимых Типов (Enumerable И Ienumerator). Методы Итератора В C# Создание Клонируемых Объектов (Icloneable). Пример Клонирования. Создание Сравнимых Объектов (Icomparable). Сортировка По Набору Критериев (Icomparer). Типы, Определяющие Сортировку, И Пользовательские Свойства. Интерфейсы Из Пространства Имен System.Collections. Интерфейс Icollection. Интерфейс Idictionary. Интерфейс Idictionaryenumerator. Интерфейс Ilist. Классы Из Пространства Имен System.Collections. Работа С Типом Arraylist. Работа С Типом Queue. Работа С Типом Stack. Пространство Имен System.Collections.Specialized. Резюме. Глава 8. Интерфейсы Обратного Вызова, Делегаты И События. Интерфейсы Обратного Вызова. Тип Делегата .Net. Определение Делегата В C# Базовые Классы System.Multicastdelegate И System.Delegate. Простейший Пример Делегата. Исследование Объекта Делегата. Модификация Типа Car С Учетом Делегатов. Реализация Групповых Вызовов. Более Совершенный Пример Делегата. Делегаты В Качестве Параметров. Анализ Программного Кода Делегирования. Ковариантность Делегатов. События В C# Глубинный Механизм Событий. Прием Поступающих Событий. Упрощенная Регистрация Событий В Visual Studio 2005. "Разборчивые" События. Анонимные Методы В C# Доступ К "Внешним" Переменным. Групповое Преобразование Методов В C# Резюме. Глава 9. Специальные Приемы Построения Типов. Создание Пользовательских Индексаторов. Вариации Индексатора Для Типа Garage. Внутреннее Представление Индексаторов Типов. Заключительные Замечания Об Индексаторах. Перегрузка Операций. Перегрузка Бинарных Операций. Операции += И -= Перегрузка Унарных Операций. Перегрузка Операций Проверки На Тождественность. Перегрузка Операций Сравнения. Внутреннее Представление Перегруженных Операций. Использование Перегруженных Операций В Языках, Не Поддерживающих Перегрузку Операций. Заключительные Замечания О Перегрузке Операций. Пользовательские Преобразования Типов. Преобразования Чисел. Преобразования Типов Класса. Создание Пользовательских Подпрограмм Преобразования. Варианты Явного Преобразования Для Типа Square. Определение Подпрограмм Неявного Преобразования. Внутреннее Представление Пользовательских Подпрограмм Преобразования. Ключевые Слова C#, Предназначенные Для Более Сложных Конструкций. Ключевое Слово Checked. Проверки Переполнения Для Всего Проекта. Ключевое Слово Unchecked. Работа С Типами Указателя. Ключевое Слово Unsafe. Работа С Операциями * И & Небезопасная (И Безопасная) Функция Swap. Доступ К Полям Через Указатели (Операция -›). Ключевое Слово Stackalloc. Фиксация Типа С Помощью Ключевого Слова Fixed. Ключевое Слово Sizeof. Директивы Препроцессора C# Разделы Программного Кода. Условная Компиляция. Резюме. Глава 10. Обобщения. Снова О Создании Объектных Образов, Восстановлении Значений И System.Object. Проблемы Создания Объектных Образов И Восстановления Значений. Типовая Безопасность И Строго Типизованные Коллекции. Проблемы Создания Объектных Образов И Строго Типизованные Коллекции. Пространство Имен System.Collections.Generic. Тип List‹T› Создание Обобщенных Методов. Пропуск Параметров Типа. Создание Обобщенных Структур (И Классов). Ключевое Слово Default В Обобщенном Программном Коде. Создание Пользовательских Обобщенных Коллекций. Установка Ограничений Для Параметров Типа С Помощью Where. Отсутствие Поддержки Ограничений При Использовании Операций. Создание Обобщенных Базовых Классов. Создание Обобщенных Интерфейсов. Создание Обобщенных Делегатов. Имитация Обобщенных Делегатов В .Net 1.1. Несколько Слов О Вложенных Делегатах. Резюме. Часть III. Программирование Компоновочных Блоков .Net. Глава 11. Компоновочные Блоки .Net. Роль Компоновочных Блоков .Net. Расширенные Возможности Многократного Использования Программного Кода. Установка Четких Границ Типов. Управление Версиями. Самоописание. Средства Конфигурации. Формат Компоновочного Блока .Net. Заголовок Win32. Заголовок Clr. Программный Код CIL, Метаданные Типа И Манифест Компоновочного Блока. Необязательные Ресурсы Компоновочного Блока. Одномодульные И Многомодульные Компоновочные Блоки. Создание И Использование Одномодульных Компоновочных Блоков. Анализ Манифеста. Анализ CIL-Кода. Анализ Метаданных Типов. Создание Приложения-Клиента В C# Создание Приложения-Клиента В Visual Basic .Net. Межъязыковое Перекрестное Наследование. Создание И Использование Многомодульных Компоновочных Блоков. Анализ Файла Ufo.Netmodule. Анализ Файла Airvehicles.DLL. Использование Многомодульного Компоновочного Блока. Приватные Компоновочные Блоки. Идентификация Приватных Компоновочных Блоков. Процесс Зондирования. Конфигурация Приватных Компоновочных Блоков. Файлы Конфигурации И Visual Studio 2005. Утилита Конфигурации Net Framework 2.0. Общедоступные Компоновочные Блоки. Строгая Форма Имени. Создание Строгого Имени Для Carlibrary.DLL. Назначение Строгого Имени В Visual Studio 2005. Установка И Удаление Общедоступных Компоновочных Блоков. Отложенная Подпись. Использование Общедоступных Компоновочных Блоков. Анализ Манифеста Sharedcarlibclient. Конфигурация Общедоступных Компоновочных Блоков. Фиксация Версии Общедоступного Компоновочного Блока. Создание Общедоступного Компоновочного Блока Версии 2.0.0.0. Динамическая Привязка К Конкретной Версии Компоновочного Блока. Снова Об Утилите Конфигурации .Net Framework 2.0. Анализ Внутренней Структуры Gac. Файлы Политики Публикации Компоновочных Блоков. Игнорирование Файла Политики Публикации. Элемент ‹Codebase› Пространство Имен System.Configuration. Файл Конфигурации Машины. Общая Схема Связей Компоновочных Блоков. Резюме. Глава 12. Отображение Типов, Динамическое Связывание И Программирование С Помощью Атрибутов. Метаданные Типов. Анализ Метаданных Перечня Enginestate. Анализ Метаданных Типа Car. Анализ Typeref. Представление Метаданных Компоновочного Блока. Представление Ссылок На Другие Компоновочные Блоки. Представление Строковых Литералов. Отображение Типов В .Net. Класс System.Type. Получение Туре С Помощью System.Object.Gettype(). Получение Туре С Помощью System.Type.Gettype(). Получение Туре С Помощью Typeof(). Создание Пользовательского Приложения Для Просмотра Метаданных. Отображение Методов. Отображение Полей И Свойств. Отображение Реализованных Интерфейсов. Отображение Вспомогательной Информации. Реализация Main(). Отображение Параметров И Возвращаемых Значений Методов. Динамически Загружаемые Компоновочные Блоки. Отображение Общедоступных Компоновочных Блоков. Динамическое Связывание. Класс System.Activator. Вызов Методов Без Параметров. Вызов Методов С Параметрами. Программирование С Помощью Атрибутов. Потребители Атрибутов. Применение Встроенных Атрибутов C# Параметры Конструктора Для Атрибутов. Атрибут Obsolete В Действии. Сокращенное Представление Атрибутов В C# Создание Пользовательских Атрибутов. Применение Пользовательских Атрибутов. Ограничение Использования Атрибута. Атрибуты Уровня Компоновочного Блока (И Уровня Модуля). Файл Assemblyinfo.Cs В Visual Studio 2005. Отображение Атрибутов При Статическом Связывании. Отображение Атрибутов При Динамическом Связывании. Перспективы Отображения, Статического И Динамического Связывания И Пользовательских Атрибутов. Создание Расширяемого Приложения. Создание Commonsnappabletypes.DLL. Создание Подключаемого Компонента В C# Создание Подключаемого Компонента В Visual Basic .Net. Создание Расширяемого Приложения Windows Forms. Резюме. Глава 13. Процессы, Домены Приложений, Контексты И Хосты Clr. Выполнение Традиционных Процессов Win32. Обзор Потоков. Взаимодействие С Процессами В Рамках Платформы .Net. Список Выполняемых Процессов. Чтение Данных Конкретного Процесса. Список Множества Потоков Процесса. Информация О Наборе Модулей Процесса. Начало И Остановка Процессов С Помощью Программных Средств. Домены Приложений .Net. Список Доменов Приложения Процесса. Программное Создание Новых Доменов Приложения. Программная Выгрузка Доменов Приложения. Границы Контекста Объекта. Контекстно-Независимые И Контекстно-Связанные Типы. Определение Контекстно-Связанных Объектов. Проверка Контекста Объекта. Еще Несколько Слов О Процессах, Доменах Приложения И Контекстах. Хостинг Общеязыковой Среды Выполнения. Параллельное Выполнение Clr. Загрузка Конкретной Версии Clr. Дополнительные Хосты Clr. Резюме. Глава 14. Создание Многопоточных Приложений. Взаимосвязь Процессов, Доменов Приложений, Контекстов И Потоков. Проблема Конкуренции И Роль Синхронизации Потоков. Краткий Обзор Делегатов .Net. Асинхронная Природа Делегатов. Методы Begininvoke() И Endinvoke(). Интерфейс System.Iasyncresult. Асинхронный Вызов Методов. Синхронизация Вызывающего Потока. Роль Делегата Asynccallback. Роль Класса Asyncresult. Передача И Получение Пользовательских Данных Состояния. Пространство Имен System.Threading. Класс System.Threading.Thread. Получение Информации Об Отдельном Потоке. Свойство Name. Свойство Priority. Программное Создание Вторичных Потоков. Работа С Делегатом Threadstart. Работа С Делегатом Parameterizedthreadstart. Приоритетные И Фоновые Потоки. Проблема Конкурентного Доступа. Синхронизация С Помощью Ключевого Слова Lock В C# Синхронизация С Помощью Типа System.Threading.Monitor. Синхронизация С Помощью Типа System.Threading.Interlocked. Синхронизация С Помощью Атрибута [Synchronization]. Программирование С Помощью Таймеров Обратного Вызова. Пул Потоков Clr. Резюме. Глава 15. CIL И Роль Динамических Компоновочных Блоков. Природа Программирования В Терминах CIL. Директивы, Атрибуты И Коды Операций CIL. Роль Директив CIL. Роль Атрибутов CIL. Роль Кодов Операций CIL. Различия Между Мнемоникой И Кодом Операции CIL. Добавление И Извлечение Данных: Стековая Природа CIL. Челночная Технология Разработки. Роль Меток В Программном Коде CIL. Взаимодействие С CIL: Модификация Файла *.Il. Компиляция CIL-Кода С Помощью Ilasm.Exe. Компиляция CIL-Кода С Помощью Sharpdevelop. Компиляция CIL-Кода С Помощью Ilide# Роль Peverify.Exe. Директивы И Атрибуты CIL. Ссылки На Внешние Компоновочные Блоки. Определение Текущего Компоновочного Блока. Определение Пространств Имен. Определение Типов Класса. Определение И Реализация Интерфейсов. Определение Перечней. Компиляция Файла Ciltypes.Il. Соответствие Между Типами Библиотеки Базовых Классов .Net, C# И CIL. Определение Членов Типов В CIL. Определение Полей Данных. Определение Конструкторов Типов. Определение Свойств. Определение Параметров Членов. Анализ Кодов Операций CIL. Директива .Maxstack. Объявление Локальных Переменных. Связывание Параметров С Локальными Переменными. Скрытая Ссылка This. Представление Итерационных Конструкций. Создание Компоновочного Блока .Net В CIL. Создание Cilcars.DLL. Создание Cilcarclient.Exe. Динамические Компоновочные Блоки. Исследование Пространства Имен System.Reflection.Emit. Роль System.Reflection.Emit.Ilgenerator. Генерирование Динамического Компоновочного Блока. Генерирование Компоновочного Блока И Набора Модулей. Роль Типа Modulebuilder. Генерирование Типа Helloclass И Принадлежащей Ему Строковой Переменной. Генерирование Конструкторов. Генерирование Метода Helloworld(). Использование Динамически Сгенерированного Компоновочного Блока. Несколько Слов О System.Codedom. Резюме. Часть IV. Программирование С Помощью Библиотек .Net. Глава 16. Пространство Имен System.Io. Анализ Пространства Имен System.Io. Типы Directory(Info) И File(Info). Абстрактный Базовый Класс Filesysteminfo. Работа С Типом Directoryinfo. Перечень Fileattributes. Перечисление Файлов С Помощью Directoryinfo. Создание Подкаталогов С Помощью Directoryinfo. Работа С Типом Directory. Работа С Типом Класса Driveinfo. Работа С Классом Fileinfo. Метод Fi1Еinfо.Create(). Метод Fileinfo.Open(). Методы Fileinfo.Openread() И Fileinfo.Openwrite(). Метод Fileinfo.Opentext(). Методы Fileinfo.Createtext() И Fileinfo.Appendtext(). Работа С Типом File. Новые Члены File В .Net 2.0. Абстрактный Класс Stream. Работа С Filestream. Работа С Streamwriter И Streamreader. Запись В Текстовый Файл. Чтение Из Текстового Файла. Непосредственное Создание Типов Streamwriter/Streamreader. Работа С Типами Stringwriter И Stringreader. Работа С Binarywriter И Binaryreader. Программный Мониторинг Файлов. Асинхронный Файловый Ввод-Вывод. Резюме. Глава 17. Сериализация Объектов. Основы Сериализации Объектов. Роль Объектных Графов. Конфигурирование Объектов Для Сериализации. Открытые Поля, Приватные Поля И Открытые Свойства. Выбор Формата Сериализации. Интерфейсы Iformatter И Iremotingformatter. Выбор Формата И Точность Типов. Сериализация Объектов С Помощью Binaryformatter. Реконструкция Объектов С Помощью Binaryformatter. Сериализация Объектов С Помощью Soapformatter. Сериализация Объектов С Помощью Xmlserializer. Контроль Генерируемых XML-Данных. Сохранение Коллекций Объектов. Настройка Процесса Сериализации. Более Глубокий Взгляд На Сериализацию Объектов. Настройка Параметров Сериализации С Помощью Iserializable. Настройка Параметров Сериализации С Помощью Атрибутов. Поддержка Версий Сериализации Объектов. Резюме. Глава 18. Удаленное Взаимодействие .Net. Понятие Удаленного Взаимодействия .Net. Пространства Имен Удаленного Взаимодействия .Net. Каркас Удаленного Взаимодействия .Net. Агенты И Сообщения. Каналы. Снова О Роли Форматтера .Net. Общая Картина. Несколько Слов О Расширении Стандартных Возможностей. Термины Удаленного Взаимодействия .Net. Варианты Маршалинга Для Объектов: Mbr И Mbv. Конфигурация Mbv-Объекта. Конфигурация Mbr-Объекта. Варианты Активизации Для Mbr-Типа: Wko И Cao. Варианты Конфигурации Wko-Типа: Синглеты И Объекты Одиночного Вызова. Сводная Характеристика Mbr-Объектов. Инсталляция Приложения, Использующего Удаленное Взаимодействие. Создание Распределенного Приложения. Создание Общего Компоновочного Блока. Создание Компоновочного Блока Сервера. Создание Компоновочного Блока Клиента. Тестирование Приложения, Использующего Удаленное Взаимодействие. Тип Channelservices. Тип Remotingconfiguration. Снова О Режиме Активизации Wko-Типов. Установка Сервера На Удаленной Машине. Использование Тср-Каналов. Несколько Слов О Ipcchannel. Файлы Конфигурации Удаленного Взаимодействия. Создание Файлов *.Config Сервера. Создание Файлов *.Config Клиента. Работа С Mbv-Объектами. Создание Общего Компоновочного Блока. Создание Компоновочного Блока Сервера. Создание Компоновочного Блока Клиента. Объекты, Активизируемые Клиентом. Схема Лизингового Управления Циклом Существования Сао-Типов И Wko-Синглетов. Схема Лизингового Управления, Используемая По Умолчанию. Изменение Параметров Схемы Лизингового Управления. Настройка Параметров Лизинга На Стороне Сервера. Настройка Параметров Лизинга На Стороне Клиента. Спонсоры Лизинга Сервера (И Клиента). Альтернативные Хосты Для Удаленных Объектов. Хостинг Удаленных Объектов С Помощью Сервиса Windows. Реализация Метода Main(). Реализация Метода Carservice.Onstart(). Реализация Метода Onstop(). Добавление Установщика Сервиса. Установка Carwinservice. Хостинг Удаленных Объектов С Помощью Iis. Асинхронное Удаленное Взаимодействие. Роль Атрибута [Oneway]. Резюме. Глава 19. Создание Окон С Помощью System.Windows.Forms. Обзор Пространства Имен System.Windows.Forms. Работа С Типами Windows Forms. Создание Главного Окна Вручную. Принцип Разграничения Обязанностей. Роль Класса Application. Возможности Класса Application. Делегат System.Eventhandler. "Анатомия" Формы. Функциональные Возможности Класса Control. Использование Возможностей Класса Control. Ответ На События Mousemove. Регистрация Щелчков Кнопок Мыши. Ответ На События Клавиатуры. Функциональные Возможности Класса Form. Цикл Существования Типа Form. Создание Windows-Приложений В Visual Studio 2005. Получение Доступа К Устаревшим Элементам Управления. Анализ Проекта Windows Forms В Visual Studio 2005. Обработка Событий В Режиме Проектирования. Класс Program. Необходимые Компоновочные Блоки. Работа С Menustrip И Contextmenustrip. Добавление Элемента Textbox В Menustrip. Создание Контекстных Меню. Проверка Состояния Элементов Меню. Работа С Statusstrip. Создание Системы Меню. Настройка Statusstrip. Работа С Типом Timer. Включение Отображения. Вывод Подсказок Для Выбранных Элементов Меню. Состояние Готовности. Работа С Toolstrip. Работа С Toolstripcontainer. Создание MDI-Приложения. Создание Родительской Формы. Создание Дочерней Формы. Создание Дочерних Окон. Резюме. Глава 20. Визуализация Графических Данных Средствами Gdi+ Обзор Пространств Имен Gdi+ Обзор Пространства Имен System.Drawing. Утилитарные Типы System.Drawing. Тип Point(F). Тип Rectangle(F). Класс Region. Класс Graphics. Сеансы Paint. Обновление Области Клиента Формы. Доступ К Объекту Graphics Вне Обработчика Paint. Освобождение Объекта Graphics. Системы Координат Gdi+ Единица Измерения, Предлагаемая По Умолчанию. Выбор Альтернативной Единицы Измерения. Изменение Начала Координат. Определение Цветовых Значений. Класс Colordialog. Манипулирование Шрифтами. Работа С Семействами Шрифтов. Работа С Гарнитурами И Размерами Шрифтов. Список Установленных Шрифтов. Класс Fontdialog. Обзор Пространства Имен System.Drawing.Drawing2D. Работа С Типами Pen. Концы Линий. Работа С Типами Brush. Работа С Hatchbrush. Работа С Texturebrush. Работа С Lineargradientbrush. Визуализация Изображений. Попадание В Заданную Область И Операции Перетаскивания Для Picturebox. Проверка Попадания В Область Изображения. Проверка Попадания В Область, Отличную От Прямоугольной. Формат Ресурсов .Net. Пространство Имен System.Resources. Создание Файла *.Resx Программными Средствами. Создание Файла *.Resources. Добавление Файла *.Resources В Компоновочный Блок .Net. Работа С Resourcewriter. Генерирование Ресурсов В Visual Studio 2005. Чтение Ресурсов Программными Средствами. Резюме. Глава 21. Использование Элементов Управления Windows Forms. Элементы Управления Windows Forms. Добавление Элементов Управления В Форму Вручную. Тип Control.Controlcollection. Добавление Элементов Управления В Форму В Visual Studio 2005. Работа С Базовыми Элементами Управления. Элемент Label. Элемент Textbox. Элемент Maskedtextbox. Элемент Button. Элементы Checkbox, Radiobutton И Group Box. Элемент Checkedlistbox. Элемент Listbox. Элемент Combobox. Порядок Переходов По Нажатию Клавиши Табуляции. Мастер Настройки Переходов По Табуляции. Работа С Другими Элементами Управления. Элемент Monthcalendar. Элемент Tooltip. Элемент Tabcontrol. Элемент Trackbar. Элемент Panel. Элементы Updown. Элемент Errorprovider. Элемент Treeview. Добавление Графических Изображений Для Узлов. Элемент Webbrowser. Создание Пользовательских Элементов Управления Windows Forms. Создание Изображений. Создание Пользовательского Интерфейса Режима Проектирования. Реализация Carcontrol. Определение Пользовательских Событий. Определение Пользовательских Свойств. Контроль Анимации. Отображение Названия. Тестирование Типа Carcontrol. Создание Пользовательской Формы Для Carcontrol. Пространство Имен System.Componentmodel. Совершенствование Режима Проектирования Carcontrol. Определение Выбираемых По Умолчанию Свойств И Событий. Выбор Изображений Для Панели Инструментов. Создание Пользовательских Диалоговых Окон. Свойство Dialogresult. Наследование Форм. Динамическое Позиционирование Элементов Управления Windows Forms. Свойство Anchor. Свойство Dock. Табличное И Потоковое Размещение Элементов. Резюме. Глава 22. Доступ К Базам Данных С Помощью Ado.Net. Высокоуровневое Определение Ado.Net. Две Грани Ado.Net. Поставщики Данных Ado.Net. Поставщики Данных Microsoft. Поставщики Данных Других Производителей. Дополнительные Пространства Имен Ado.Net. Типы System.Data. Интерфейс Idbconnection. Интерфейс Idbtransaction. Интерфейс Idbcommand. Интерфейсы Idbdataparameter И Idataparameter. Интерфейсы Idbdataadapter И Idataadapter. Интерфейсы Idatareader И Idatarecord. Интерфейсы И Абстрактные Поставщики Данных. Файлы Конфигурации И Гибкость Приложений. Модель Источника Поставщика Данных .Net 2.0. Зарегистрированные Источники Поставщиков Данных. Рабочий Пример Источника Поставщика Данных. Элемент ‹Connectionstrings› Установка Базы Данных Cars. Соединение С Базой Данных В Visual Studio 2005. Связный Уровень Ado.Net. Работа С Объектами Соединения. Работа С Connectionstringbuilder В .Net 2.0. Работа С Объектами Команд. Работа С Объектами Чтения Данных. Получение Множества Наборов Результатов С Помощью Объектов Чтения Данных. Изменение Содержимого Таблиц С Помощью Объектов Команд. Вставка Новых Записей. Удаление Записей. Обновление Записей. Работа С Объектами Параметризованных Команд. Указание Параметров С Помощью Типа Dbparameter. Выполнение Хранимых Процедур С Помощью Dbcommand. Асинхронный Доступ К Данным В .Net 2.0. Несвязный Уровень Ado.Net. Роль Dataset. Члены Dataset. Работа С Datacolumn. Создание Datacolumn. Разрешение Автоприращения Для Полей. Добавление Datacolumn В Datatable. Работа С Datarow. Свойство Datarow.Rowstate. Работа С Datatable. Работа С Datatablereader В .Net 2.0. Сохранение Dataset (И Datatable) В Формате XML. Привязка Datatable К Интерфейсу Пользователя. Программное Удаление Строк. Применение Фильтров И Сортировки. Обновление Строк. Работа С Типом Dataview. Работа С Адаптерами Данных. Заполнение Dataset С Помощью Адаптера Данных. Отображение Имен Базы Данных В Понятные Имена. Обновление Базы Данных С Помощью Объекта Адаптера Данных. Установка Свойства Insertcommand. Установка Свойства Updatecommand. Установка Свойства Deletecommand. Генерирование Sql-Команд С Помощью Типов Построителя Команд. Объекты Dataset С Множеством Таблиц И Объекты Datarelation. Навигационные Возможности Для Связанных Таблиц. Возможности Мастеров Данных. Строго Типизованные Объекты Dataset. Автоматически Генерируемый Компонент Данных. Резюме. Часть V. Web-Приложения И Web-Сервисы XML. Глава 23. Web-Страницы И Web-Элементы Управления Asp.Net 2.0. Роль Http. Web-Приложения И Web-Серверы. Работа С Виртуальными Каталогами Iis. Сервер Разработки Asp.Net 2.0. Роль Html. Структура Html-Документа. Разработка Html-Формы. Создание Пользовательского Интерфейса На Базе Html. Роль Сценариев Клиента. Пример Сценария Клиента. Контроль Допустимости Вводимых Данных. Подача Запроса Формы (Get И Post). Создание "Классической" Asp-Страницы. Ответ На Отправку Post. Проблемы Классической Технологии Asp. Главные Преимущества Asp.Net 1.Х. Главные Преимущества Asp.Net 2.0. Пространства Имен Asp.Net 2.0. Модель Программного Кода Web-Страницы Asp.Net. Модель Одномодульной Страницы. Директива ‹%@Page%› Директива ‹%@Import%› Блок ‹Script› Декларация Элемента Asp.Net. Модель Страницы С Внешним Кодом Поддержки. Отладка И Трассировка Страниц Asp.Net. Структура Каталогов Web-Узла Asp.Net. Роль Папки Bin. Роль Папки App_Code. Цикл Компиляции Страницы Asp.Net 2.0. Цикл Компиляции Одномодульных Страниц. Цикл Компиляции Многомодульных Страниц. Цепочка Наследования Типа Page. Тип System.Web.Ui.Page. Взаимодействие С Поступающим Http-Запросом. Получение Статистики Браузера. Доступ К Поступающим Данным Формы. Свойство Ispostback. Взаимодействие С Исходящим Http-Ответом. Генерирование Html-Содержимого. Перенаправление Пользователей. Цикл Существования Web-Страницы Asp.Net. Роль Атрибута Autoeventwireup. Событие Error. Природа Web-Элементов Управления. Обработка Серверных Событий. Свойство Autopostback. Тип System.Web.Ui.Control. Список Вложенных Элементов Управления. Динамическое Добавление (И Удаление) Элементов Управления. Основные Члены Типа System.Web.Ul.Webcontrols.Webcontrol. Категории Web-Элементов Управления Asp.Net. Несколько Слов О System.Web.Ui.Htmlcontrols. Создание Простого Web-Узла Asp.Net 2.0. Работа С Шаблоном Страниц. Работа С Элементом Управления Menu. Работа С Adrotator. Определение Страницы Default.Aspx. Создание Страницы Inventory. Разрешение Сортировки И Перелистывания. Разрешение Редактирования На Месте. Создание Страницы Buildcar. Роль Элементов Управления, Связанных С Контролем Ввода. Элемент Requiredfieldvalidator. Элемент Rangevalidator. Элемент Comparevalidator. Создание Отчетов По Проверкам. Резюме. Глава 24. Web-Приложения Asp.Net 2.0. Проблема Состояния. Технологии Управления Состоянием Asp.Net. Роль Состояния Представлений Asp.Net. Демонстрация Использования Состояния Представлений. Добавление Пользовательских Данных Состояния Представлений. Несколько Слов О Данных Состояния Элементов. Роль Файла Global.Asax. Последний Глобальный Шанс Для Обработки Исключений. Базовый Класс Httpapplication. Различия Между Приложением И Сеансом. Поддержка Данных Состояния Приложения. Изменение Данных Состояния Приложения. Обработка Завершения Работы Web-Приложения. Кэш Приложения. Кэширование Данных. Изменение Файла *.Aspx. Обработка Сеансовых Данных. Дополнительные Члены Httpsessionstate. Данные Cookie. Создание Данных Cookie. Чтение Поступающих Данных Cookie. Настройка Web-Приложения Asp.Net С Помощью Web.Config. Разрешение Трассировки С Помощью ‹Trace› Настройка Вывода Сообщений Об Ошибках С Помощью ‹Customerrors› Сохранение Данных Состояния С Помощью ‹Sessionstate› Утилита Администрирования Узла Asp.Net 2.0. Наследование Конфигурации. Резюме. Глава 25. Web-Сервисы XML. Роль Web-Сервисов XML. Преимущества Web-Сервисов XML. Определение Клиента Web-Сервиса XML. Компоненты Web-Сервиса XML. Служба Поиска Web-Сервиса XML. Служба Описания Web-Сервиса XML. Транспортный Протокол. Пространства Имен .Net Для Web-Сервисов XML. Пространство Имен System.Web.Services. Создание Web-Сервиса XML Вручную. Тестирование Web-Сервиса XML С Помощью Webdev.Webserver.Exe. Тестирование Web-Сервиса XML С Помощью Iis. Просмотр Wsdl-Документа. Автоматически Генерируемая Страница Тестирования. Создание Пользовательской Страницы Тестирования. Создание Web-Сервиса XML В Visual Studio 2005. Реализация Web-Метода Tellfortune(). Роль Базового Класса Webservice. Атрибут [Webservice]. Свойства Namespace И Description. Свойство Name. Атрибут [Webservicebinding]. Игнорирование Проверки Соответствия Правилам Вр 1.1. Отмена Проверки Соответствия Правилам Bp 1.1. Атрибут [Webmethod]. Описание Web-Метода С Помощью Свойства Description. Устранение Конфликтов Имен Wsdl С Помощью Свойства Messagename. Поддержка Данных Состояния Web-Сервисов С Помощью Свойства Enablesession. Настройка Данных Сеансового Состояния С Помощью Web.Config. Язык Описания Web-Сервисов (Wsdl). Определение Wsdl-Документа. Элемент ‹Types› Элемент ‹Message› Элемент ‹Porttype› Элемент ‹Binding› Элемент ‹Service› Снова О Протоколах Связи Web-Сервисов XML. Связь Http Get И Http Post. Связь Soap. Просмотр Сообщения Soap. Утилита Командной Строки Wsdl.Exe. Преобразование Wsdl-Кода В Серверный Программный Код Web-Сервиса. Преобразование Wsdl-Кода В Программный Код Агента Для Клиента. Программный Код Агента. Конструктор, Заданный По Умолчанию. Поддержка Синхронного Вызова. Поддержка Асинхронного Вызова. Создание Приложения Клиента. Генерирование Программного Кода Агента В Visual Studio 2005. Доступ К Пользовательским Типам Web-Методов. Доступ К Массивам. Доступ К Структурам. Доступ К Типам Dataset Ado.Net. Клиент Windows Forms. Представление Типов На Стороне Клиента. Стандарт Поиска И Взаимодействия (Протокол Uddi). Взаимодействие С Uddi В Visual Studio 2005. Резюме. Примечания.
Язык программирования C++.
Для Кого Написана Эта Книга. Изменения В Пятом Издании. Структура Книги. Соглашения, Принятые В Книге. Примечание О Компиляторах. Благодарности. Глава 1. Первые Шаги. 1.1. Создание Простой Программы На Языке С++ Ключевая Концепция. Типы. 1.1.1. Компиляция И Запуск Программы. Соглашение Об Именовании Файлов Исходного Кода. Запуск Компилятора Из Командной Строки. Вызов Компилятора Gnu Или Microsoft. Упражнения Раздела 1.1.1. 1.2. Первый Взгляд На Ввод-Вывод. Стандартные Объекты Ввода И Вывода. Программа, Использующая …Библиотеку Ввода-Вывода. Запись В Поток. Использование Имен Из Стандартной Библиотеки. Чтение Из Потока. Завершение Программы. Упражнения Раздела 1.2. 1.3. Несколько Слов О Комментариях. Виды Комментариев В С++ Парный Комментарий Не Допускает Вложения. Упражнения Раздела 1.3. 1.4. Средства Управления. 1.4.1. Оператор While. Упражнения Раздела 1.4.1. 1.4.2. Оператор For. Упражнения Раздела 1.4.2. 1.4.3. Ввод Неизвестного Количества Данных. Ввод Конца Файла С Клавиатуры. Возвращаясь К Компиляции. Упражнения Раздела 1.4.3. 1.4.4. Оператор If. Упражнения Раздела 1.4.4. Ключевая Концепция. Выравнивание И Форматирование Кода Программ C++ 1.5. Введение В Классы. 1.5.1. Класс Sales_Item. Ключевая Концепция. Определение Поведения Класса. Чтение И Запись Объектов Класса Sales_Item. Суммирование Объектов Класса Sales_Item. Использование Перенаправления Файлов. Упражнения Раздела 1.5.1. 1.5.2. Первый Взгляд На Функции-Члены. Что Такое Функция-Член? Упражнения Раздела 1.5.2. 1.6. Программа Для Книжного Магазина. Упражнения Раздела 1.6. Резюме. Термины. Часть I. Основы. Глава 2. Переменные И Базовые Типы. 2.1. Простые Встроенные Типы. 2.1.1. Арифметические Типы. Машинный Уровень Представления Встроенных Типов. Знаковые И Беззнаковые Типы. Совет. Какой Тип Использовать. Упражнения Раздела 2.1.1. 2.1.2. Преобразование Типов. Совет. Избегайте Неопределенного И Машинно-Зависимого Поведения. Выражения, Задействующие Беззнаковые Типы. Внимание! Не Смешивайте Знаковые И Беззнаковые Типы. Упражнения Раздела 2.1.2. 2.1.3. Литералы. Целочисленные Литералы И Литералы С Плавающей Запятой. Символьные И Строковые Литералы. Управляющие Последовательности. Определение Типа Литерала. Логические Литералы И Литеральные Указатели. Упражнения Раздела 2.1.3. 2.2. Переменные. 2.2.1. Определения Переменных. Терминология. Что Такое Объект? Инициализаторы. Списочная Инициализация. Инициализация По Умолчанию. Упражнения Раздела 2.2.1. 2.2.2. Объявления И Определения Переменных. Внимание! Неинициализированные Переменные — Причина Проблем Во Время Выполнения. Упражнения Раздела 2.2.2. Ключевая Концепция. Статическая Типизация. 2.2.3. Идентификаторы. Соглашения Об Именах Переменных. Упражнения Раздела 2.2.3. 2.2.4. Область Видимости Имен. Совет. Определяйте Переменные При Первом Использовании. Вложенные Области Видимости. Упражнения Раздела 2.2.4. 2.3. Составные Типы. 2.3.1. Ссылки. Ссылка — Это Псевдоним. Определение Ссылок. Упражнения Раздела 2.3.1. 2.3.2. Указатели. Получение Адреса Объекта. Значение Указателя. Использование Указателя Для Доступа К Объекту. Ключевая Концепция. У Некоторых Символов Есть Несколько Значений. Нулевые Указатели. Совет. Инициализируйте Все Указатели. Присвоение И Указатели. Другие Операции С Указателями. Упражнения Раздела 2.3.2. 2.3.3. Понятие Описаний Составных Типов. Определение Нескольких Переменных. Указатели На Указатели. Ссылки На Указатели. Упражнения Раздела 2.3.3. 2.4. Спецификатор Const. Инициализация И Константы. По Умолчанию Константные Объекты Локальны Для Файла. Упражнения Раздела 2.4. 2.4.1. Ссылка На Константу. Терминология. Константная Ссылка — Это Ссылка На Константу. Инициализация И Ссылки На Константу. Ссылка На Константу Может Ссылаться На Неконстантный Объект. 2.4.2. Указатели И Спецификатор Const. Константные Указатели. Упражнения Раздела 2.4.2. 2.4.3. Спецификатор Const Верхнего Уровня. Упражнения Раздела 2.4.3. 2.4.4. Переменные Constexpr И Константные Выражения. Переменные Constexpr. Литеральные Типы. Указатели И Спецификатор Constexpr. Упражнения Раздела 2.4.4. 2.5. Работа С Типами. 2.5.1. Псевдонимы Типов. Указатели, Константы И Псевдонимы Типа. 2.5.2. Спецификатор Типа Auto. Составные Типы, Const И Auto. Упражнения Раздела 2.5.2. 2.5.3. Спецификатор Типа Decltype. Спецификатор Decltype И Ссылки. Упражнения Раздела 2.5.3. 2.6. Определение Собственных Структур Данных. 2.6.1 Определение Типа Sales_Data. Переменные-Члены Класса. Упражнения Раздела 2.6.1. 2.6.2. Использование Класса Sales_Data. Суммирование Двух Объектов Класса Sales_Data. Чтение Данных В Объект Класса Sales_Data. Вывод Суммы Двух Объектов Класса Sales_Data. Упражнения Раздела 2.6.2. 2.6.3. Создание Собственных Файлов Заголовка. Краткое Введение В Препроцессор. Упражнения Раздела 2.6.3. Резюме. Термины. Глава 3. Типы String, Vector И Массивы. 3.1. Пространства Имен И Объявления Using. Для Каждого Имени Необходимо Индивидуальное Объявление Using. Заголовки Не Должны Содержать Объявлений Using. Примечание Для Читателя. Упражнения Раздела 3.1. 3.2. Библиотечный Тип String. 3.2.1. Определение И Инициализация Строк. Прямая Инициализация И Инициализация Копией. 3.2.2. Операции Со Строками. Чтение И Запись Строк. Чтение Неопределенного Количества Строк. Применение Функции Getline() Для Чтения Целой Строки. Строковые Операции Size() И Empty(). Тип String::Size_Type. Сравнение Строк. Присвоение Строк. Сложение Двух Строк. Сложение Строк И Символьных Строковых Литералов. Упражнения Раздела 3.2.2. 3.2.3. Работа С Символами Строки. Совет. Используйте Версии С++ Библиотечных Заголовков Языка С. Обработка Каждого Символа, Использование Серийного Оператора For. Использование Серийного Оператора For Для Изменения Символов В Строке. Обработка Лишь Некоторых Символов. Использование Индексирования Для Перебора. Внимание! Индексирование Не Контролируется. Использование Индексирования Для Произвольного Доступа. Упражнения Раздела 3.2.3. 3.3. Библиотечный Тип Vector. 3.3.1. Определение И Инициализация Векторов. Списочная Инициализация Вектора. Создание Определенного Количества Элементов. Инициализация Значения. Списочный Инициализатор Или Количество Элементов. Упражнения Раздела 3.3.1. 3.3.2. Добавление Элементов В Вектор. Ключевая Концепция. Рост Вектора Эффективен. Последствия Возможности Добавления Элементов В Вектор. Упражнения Раздела 3.3.2. 3.3.3. Другие Операции С Векторами. Вычисление Индекса Вектора. Индексация Не Добавляет Элементов. Внимание! Индексировать Можно Лишь Существующие Элементы! Упражнения Раздела 3.3.3. 3.4. Знакомство С Итераторами. 3.4.1. Использование Итераторов. Операции С Итераторами. Перемещение Итератора С Одного Элемента На Другой. Ключевая Концепция. Обобщенное Программирование. Типы Итераторов. Терминология. Итераторы И Типы Итераторов. Функции Begin() И End(). Объединение Обращения К Значению И Доступа К Члену. Некоторые Операции С Векторами Делают Итераторы Недопустимыми. 3.4.2. Арифметические Действия С Итераторами. Арифметические Операции С Итераторами. Использование Арифметических Действий С Итераторами. Упражнения Раздела 3.4.2. 3.5. Массивы. 3.5.1. Определение И Инициализация Встроенных Массивов. Явная Инициализация Элементов Массива. Особенности Символьных Массивов. Не Допускается Ни Копирование, Ни Присвоение. Понятие Сложных Объявлений Массива. Упражнения Раздела 3.5.1. 3.5.2. Доступ К Элементам Массива. Проверка Значений Индекса. Упражнения Раздела 3.5.2. 3.5.3. Указатели И Массивы. Указатели — Это Итераторы. Библиотечные Функции Begin() И End(). Арифметические Действия С Указателями. Взаимодействие Обращения К Значению С Арифметическими Действиями С Указателями. Индексирование И Указатели. Упражнения Раздела 3.5.3. 3.5.4. Символьные Строки В Стиле С. Строковые Функции Библиотеки С. Сравнение Строк. За Размер Строки Отвечает Вызывающая Сторона. Упражнения Раздела 3.5.4. 3.5.5. Взаимодействие С Устаревшим Кодом. Совместное Использование Библиотечных Строки Строк В Стиле С. Использование Массива Для Инициализации Вектора. Совет. Используйте Вместо Массивов Библиотечные Типы. Упражнения Раздела 3.5.5. 3.6. Многомерные Массивы. Инициализация Элементов Многомерного Массива. Индексация Многомерных Массивов. Использование Серийного Оператора For С Многомерными Массивами. Указатели И Многомерные Массивы. Псевдонимы Типов Упрощают Указатели На Многомерные Массивы. Упражнения Раздела 3.6. Резюме. Термины. Глава 4. Выражения. 4.1. Основы. 4.1.1. Фундаментальные Концепции. Группировка Операторов И Операндов. Преобразование Операндов. Перегруженные Операторы. L- И R-Значения. 4.1.2. Приоритет И Порядок. Круглые Скобки Переопределяют Приоритет И Порядок. Когда Важны Приоритет И Порядок. Упражнения Раздела 4.1.2. 4.1.3. Порядок Вычисления. Порядок Вычисления, Приоритет И Порядок Операторов. Упражнения Раздела 4.1.3. Совет. Манипулирование Составными Выражениями. 4.2. Арифметические Операторы. Внимание! Переполнение Переменной И Другие Арифметические Особенности. Упражнения Раздела 4.2. 4.3. Логические Операторы И Операторы Отношения. Операторы Логического And И Or. Оператор Логического Not. Операторы Отношения. Проверка Равенства И Логические Литералы. Упражнения Раздела 4.3. 4.4. Операторы Присвоения. Оператор Присвоения Имеет Правосторонний Порядок. Оператор Присвоения Имеет Низкий Приоритет. Не Перепутайте Операторы Равенства И Присвоения. Составные Операторы Присвоения. Упражнения Раздела 4.4. 4.5. Операторы Инкремента И Декремента. Совет. Используйте Постфиксные Операторы Только По Мере Необходимости. Объединение Операторов Обращения К Значению И Инкремента В Одном Выражении. Совет. Краткость Может Быть Достоинством. Помните, Что Операнды Могут Быть Обработаны В Любом Порядке. Упражнения Раздела 4.5. 4.6. Операторы Доступа К Членам. Упражнения Раздела 4.6. 4.7. Условный Оператор. Вложенные Условные Операторы. Применение Условного Оператора В Выражении Вывода. Упражнения Раздела 4.7. 4.8. Побитовые Операторы. Побитовые Операторы Сдвига. Побитовый Оператор Not. Побитовые Операторы And, Or И Xor. Использование Побитовых Операторов. Операторы Сдвига (Они Же Ввода И Вывода) Имеют Левосторонний Порядок. Упражнения Раздела 4.8. 4.9. Оператор Sizeof. Упражнения Раздела 4.9. 4.10. Оператор Запятая. Упражнения Раздела 4.10. 4.11. Преобразование Типов. Когда Происходят Неявные Преобразования. 4.11.1. Арифметические Преобразования. Целочисленные Преобразования. Операнды Беззнакового Типа. Концепция Арифметических Преобразований. Упражнения Раздела 4.11.1. 4.11.2. Другие Неявные Преобразования. 4.11.3. Явные Преобразования. Именованные Операторы Приведения. Оператор Static_Cast. Оператор Const_Cast. Оператор Reinterpret_Cast. Приведение Типов В Старом Стиле. Совет. Избегайте Приведения Типов. Упражнения Раздела 4.11.3. 4.12. Таблица Приоритетов Операторов. Резюме. Термины. Глава 5. Операторы. 5.1. Простые Операторы. Пустые Операторы. Остерегайтесь Пропущенных И Лишних Точек С Запятой. Составные Операторы (Блоки). Упражнения Раздела 5.1. 5.2. Операторная Область Видимости. Упражнения Раздела 5.2. 5.3. Условные Операторы. 5.3.1. Оператор If. Использование Оператора If Else. Вложенные Операторы If. Следите За Фигурными Скобками. Потерянный Оператор Else. Контроль Пути Выполнения При Помощи Фигурных Скобок. Упражнения Раздела 5.3.1. 5.3.2. Оператор Switch. Порядок Выполнения В Операторе Switch. Пропуск Оператора Break — Весьма Распространенная Ошибка. Метка Default. Определение Переменной В Операторе Switch. Упражнения Раздела 5.3.2. 5.4. Итерационные Операторы. 5.4.1. Оператор While. Использование Цикла While. Упражнения Раздела 5.4.1. 5.4.2. Традиционный Оператор For. Поток Выполнения В Традиционном Цикле For. Несколько Определений В Заголовке For. Пропуск Частей Заголовка For. Упражнения Раздела 5.4.2. 5.4.3. Серийный Оператор For. 5.4.4. Оператор Do While. Упражнения Раздела 5.4.4. 5.5. Операторы Перехода. 5.5.1. Оператор Break. Упражнения Раздела 5.5.1. 5.5.2. Оператор Continue. Упражнения Раздела 5.5.2. 5.5.3. Оператор Goto. Упражнения Раздела 5.5.3. 5.6. Блоки Try И Обработка Исключений. 5.6.1. Оператор Throw. 5.6.2. Блок Try. Создание Обработчика. При Поиске Обработчика Выполнение Функций Прерывается. Внимание! Написание Устойчивого К Исключениям Кода — Довольно Сложная Задача. 5.6.3. Стандартные Исключения. Упражнения Раздела 5.6.3. Резюме. Термины. Глава 6. Функции. 6.1. Основы Функций. Создание Функции. Вызов Функции. Параметры И Аргументы. Список Параметров Функции. Тип Возвращаемого Значения Функции. Упражнения Раздела 6.1. 6.1.1. Локальные Объекты. Автоматические Объекты. Локальные Статические Объекты. Упражнения Раздела 6.1.1. 6.1.2. Объявление Функций. Объявления Функций Находятся В Файлах Заголовка. Упражнения Раздела 6.1.2. 6.1.3. Раздельная Компиляция. Компиляция И Компоновка Нескольких Файлов Исходного Кода. Упражнения Раздела 6.1.3. 6.2. Передача Аргументов. 6.2.1. Передача Аргумента По Значению. Параметры Указателя. Упражнения Раздела 6.2.1. 6.2.2. Передача Аргумента По Ссылке. Использование Ссылки Во Избежание Копирования. Использование Ссылочных Параметров Для Возвращения Дополнительной Информации. Упражнения Раздела 6.2.2. 6.2.3. Константные Параметры И Аргументы. Параметры В Виде Указателей Или Ссылок И Константность. По Возможности Используйте Ссылки На Константы. Упражнения Раздела 6.2.3. 6.2.4. Параметры В Виде Массива. Использование Маркера Для Определения Продолжения Массива. Использование Соглашения Стандартной Библиотеки. Явная Передача Параметра Размера. Параметры Массива И Константность. Ссылочный Параметр Массива. Передача Многомерного Массива. Упражнения Раздела 6.2.4. 6.2.5. Функция Main(): Обработка Параметров Командной Строки. Упражнения Раздела 6.2.5. 6.2.6. Функции С Переменным Количеством Параметров. Параметры Типа Initializer_List. Параметр В Виде Многоточия. Упражнения Раздела 6.2.6. 6.3. Типы Возвращаемого Значения И Оператор Return. 6.3.1. Функции Без Возвращаемого Значения. 6.3.2. Функции, Возвращающие Значение. Как Возвращаются Значения. Никогда Не Возвращайте Ссылку На Локальный Объект. Функции, Возвращающие Типы Класса И Оператор Вызова. Возвращаемая Ссылка Является L-Значением. Списочная Инициализация Возвращаемого Значения. Возвращение Значения Из Функции Main(). Рекурсия. Упражнения Раздела 6.3.2. 6.3.3. Возвращение Указателя На Массив. Объявление Функции, Возвращающей Указатель На Массив. Использование Замыкающего Типа Возвращаемого Значения. Использование Спецификатора Decltype. Упражнения Раздела 6.3.3. 6.4. Перегруженные Функции. Определение Перегруженных Функций. Различие Типов Параметров. Перегрузка И Константные Параметры. Совет. Когда Не Следует Перегружать Функции. Оператор Const_Cast И Перегрузка. Вызов Перегруженной Функции. Упражнения Раздела 6.4. 6.4.1. Перегрузка И Область Видимости. 6.5. Специальные Средства. 6.5.1. Аргументы По Умолчанию. Вызов Функции С Аргументами По Умолчанию. Объявление Аргумента По Умолчанию. Инициализация Аргумента По Умолчанию. Упражнения Раздела 6.5.1. 6.5.2. Встраиваемые Функции И Функции Constexpr. Встраиваемые Функции Позволяют Избежать Дополнительных Затрат На Вызов. Функции Constexpr. Помещайте Встраиваемые Функции И Функции Constexpr В Файлы Заголовка. Упражнения Раздела 6.5.2. 6.5.3. Помощь В Отладке. Макрос Препроцессора Assert. Переменная Препроцессора Ndebug. Упражнения Раздела 6.5.3. 6.6. Подбор Функции. Выявление Кандидатов И Подходящих Функций. Поиск Наилучшего Соответствия, Если Он Есть. Подбор Перегруженной Версии С Несколькими Параметрами. Упражнения Раздела 6.6. 6.6.1. Преобразование Типов Аргументов. Соответствие, Требующее Приведения И (Или) Целочисленного Преобразования. Соответствие Функций И Константные Аргументы. Упражнения Раздела 6.6.1. 6.7. Указатели На Функции. Использование Указателей На Функцию. Указатели На Перегруженные Функции. Указатель На Функцию Как Параметр. Возвращение Указателя На Функцию. Использование Спецификаторов Auto И Decltype Для Типов Указателей На Функции. Упражнения Раздела 6.7. Резюме. Термины. Глава 7. Классы. 7.1. Определение Абстрактных Типов Данных. 7.1.1. Разработка Класса Sales_Data. Ключевая Концепция. Различие В Ролях Программистов. Использование Пересмотренного Класса Sales_Data. Упражнения Раздела 7.1.1. 7.1.2. Определение Пересмотренного Класса Sales_Data. Определение Функций-Членов. Указатель This. Константные Функции-Члены. Область Видимости Класса И Функции-Члены. Определение Функции-Члена Вне Класса. Определение Функции, Возвращающей Указатель This На Объект. Упражнения Раздела 7.1.2. 7.1.3. Определение Функций, Не Являющихся Членом Класса, Но Связанных С Ним. Определение Функций Read() И Print(). Определение Функции Add(). Упражнения Раздела 7.1.3. 7.1.4. Конструкторы. Синтезируемый Стандартный Конструктор. Некоторые Классы Не Могут Полагаться На Синтезируемый Стандартный Конструктор. Определение Конструкторов Класса Sales_Data. Что Значит = Default. Список Инициализации Конструктора. Определение Конструктора Вне Тела Класса. Упражнения Раздела 7.1.4. 7.1.5. Копирование, Присвоение И Удаление. Некоторые Классы Не Могут Полагаться На Синтезируемые Версии. 7.2. Управление Доступом И Инкапсуляция. Использование Ключевых Слов Class И Struct. Ключевая Концепция. Преимущества Инкапсуляции. Упражнения Раздела 7.2. 7.2.1. Друзья. Объявление Дружественных Отношений. Упражнения Раздела 7.2.1. 7.3. Дополнительные Средства Класса. 7.3.1. Снова О Членах Класса. Определение Типов-Членов. Функции-Члены Класса Screen. Встраиваемые Члены Класса. Перегрузка Функций-Членов. Изменяемые Переменные-Члены. Инициализаторы Переменных-Членов Класса. Упражнения Раздела 7.3.1. 7.3.2. Функции, Возвращающие Указатель *This. Возвращение *This Из Константной Функции-Члена. Перегрузка На Основании Константности. Совет. Используйте Закрытые Вспомогательные Функции. Упражнения Раздела 7.3.2. 7.3.3. Типы Классов. Объявления Класса. Упражнения Раздела 7.3.3. 7.3.4. Снова О Дружественных Отношениях. Дружественные Отношения Между Классами. Как Сделать Функцию-Член Дружественной. Перегруженные Функции И Дружественные Отношения. Объявление Дружественных Отношений И Область Видимости. Упражнения Раздела 7.3.4. 7.4. Область Видимости Класса. Область Видимости И Члены, Определенные Вне Класса. Упражнения Раздела 7.4. 7.4.1. Поиск Имен В Области Видимости Класса. Поиск Имен Для Объявлений Членов Класса. Имена Типов Имеют Особенности. При Поиске Имен В Областях Видимости Члены Класса Следуют Обычным Правилам. После Поиска В Области Видимости Класса Продолжается Поиск В Окружающей Области Видимости. Поиск Имен Распространяется По Всему Файлу, Где Они Были Применены. Упражнения Раздела 7.4.1. 7.5. Снова О Конструкторах. 7.5.1. Список Инициализации Конструктора. Иногда Применение Списка Инициализации Конструктора Неизбежно. Совет. Используйте Списки Инициализации Конструктора. Порядок Инициализации Переменных-Членов Класса. Аргументы По Умолчанию И Конструкторы. Упражнения Раздела 7.5.1. 7.5.2. Делегирующий Конструктор. Упражнения Раздела 7.5.2. 7.5.3. Роль Стандартного Конструктора. Применение Стандартного Конструктора. Упражнения Раздела 7.5.3. 7.5.4. Неявное Преобразование Типов Класса. Допустимо Только Одно Преобразование Типов Класса. Преобразования Типов Класса Не Всегда Полезны. Предотвращение Неявных Преобразований, Осуществляемых Конструктором. Явные Конструкторы Применяются Только Для Прямой Инициализации. Применение Явных Конструкторов Для Преобразований. Библиотечные Классы С Явными Конструкторами. Упражнения Раздела 7.5.4. 7.5.5. Агрегатные Классы. Упражнения Раздела 7.5.5. 7.5.6. Литеральные Классы. Конструкторы Constexpr. Упражнения Раздела 7.5.6. 7.6. Статические Члены Класса. Объявление Статических Членов. Использование Статических Членов Класса. Определение Статических Членов. Инициализация Статических Переменных-Членов В Классе. Статические Члены Можно Применять Так, Как Нельзя Применять Обычные. Упражнения Раздела 7.6. Резюме. Термины. Часть II. Библиотека С++ Глава 8. Библиотека Ввода И Вывода. 8.1. Классы Ввода-Вывода. Взаимоотношения Между Типами Ввода И Вывода. 8.1.1. Объекты Ввода-Вывода Не Допускают Копирования И Присвоения. 8.1.2. Флаги Состояния. Опрос Состояния Потока. Управление Флагами Состояния. Упражнения Раздела 8.1.2. 8.1.3. Управление Буфером Вывода. Сброс Буфера Вывода. Манипулятор Unitbuf. Внимание! При Сбое Программы Буфер Не Сбрасывается. Связывание Потоков Ввода И Вывода. 8.2. Ввод И Вывод В Файл. 8.2.1. Использование Объектов Файловых Потоков. Использование Fstream Вместо Iostream& Функции-Члены Open() И Close(). Автоматическое Создание И Удаление. Упражнения Раздела 8.2.1. 8.2.2. Режимы Файла. Открытие Файла В Режиме Out Удаляет Существующие Данные. Режим Файла Устанавливается При Каждом Вызове Функции Open(). Упражнения Раздела 8.2.2. 8.3. Строковые Потоки. 8.3.1. Использование Класса Istringstream. Упражнения Раздела 8.3.1. 8.3.2. Использование Класса Ostringstream. Упражнения Раздела 8.3.2. Резюме. Термины. Глава 9. Последовательные Контейнеры. 9.1. Обзор Последовательных Контейнеров. Решение О Том, Какой Последовательный Контейнер Использовать. Упражнения Раздела 9.1. 9.2. Обзор Библиотечных Контейнеров. Ограничения На Типы, Которые Может Содержать Контейнер. Упражнения Раздела 9.2. 9.2.1. Итераторы. Диапазоны Итераторов. Требования К Итераторам, Формирующим Диапазон. Смысл Использования Диапазонов, Включающих Левый Элемент. Упражнения Раздела 9.2.1. 9.2.2. Типы-Члены Классов Контейнеров. Упражнения Раздела 9.2.2. 9.2.3. Функции-Члены Begin() И End(). Упражнения Раздела 9.2.3. 9.2.4. Определение И Инициализация Контейнера. Инициализация Контейнера Как Копии Другого Контейнера. Списочная Инициализация. Конструкторы Последовательных Контейнеров, Связанные С Размером. Библиотечные Массивы Имеют Фиксированный Размер. Упражнения Раздела 9.2.4. 9.2.5. Присвоение И Функция Swap(). Применение Функции Assign() (Только Последовательные Контейнеры). Применение Функции Swap(). Упражнения Раздела 9.2.5. 9.2.6. Операции С Размером Контейнера. 9.2.7. Операторы Сравнения. Упражнения Раздела 9.2.7. 9.3. Операции С Последовательными Контейнерами. 9.3.1. Добавление Элементов В Последовательный Контейнер. Применение Функции Push_Back(). Ключевая Концепция. Элементы Контейнера Содержат Копии Значений. Применение Функции Push_Front(). Добавление Элементов В Указанную Точку Контейнера. Вставка Диапазона Элементов. Применение Возвращаемого Значения Функции Insert(). Применение Функций Emplace(). Упражнения Раздела 9.3.1. 9.3.2. Доступ К Элементам. Индексация И Безопасный Произвольный Доступ. Упражнения Раздела 9.3.2. 9.3.3. Удаление Элементов. Применение Функций Pop_Front() И Pop_Back(). Удаление Элемента В Середине Контейнера. Удаление Нескольких Элементов. Упражнения Раздела 9.3.3. 9.3.4. Специализированные Функции Контейнера Forward_List. Упражнения Раздела 9.3.4. 9.3.5. Изменение Размеров Контейнера. Упражнения Раздела 9.3.5. 9.3.6. Некоторые Операции С Контейнерами Делают Итераторы Недопустимыми. Совет. Контроль Итераторов. Создание Циклов, Которые Изменяют Контейнер. Не Храните Итератор, Возвращенный Функцией End(). Упражнения Раздела 9.3.6. 9.4. Как Увеличивается Размер Вектора. Функции-Члены Управления Емкостью. Функции-Члены Capacity() И Size(). Упражнения Раздела 9.4. 9.5. Дополнительные Операции Со Строками. 9.5.1. Дополнительные Способы Создания Строк. Функция Substr(). Упражнения Раздела 9.5.1. 9.5.2. Другие Способы Изменения Строки. Функции Append() И Replace(). Множество Способов Изменить Строку. Упражнения Раздела 9.5.2. 9.5.3. Операции Поиска Строк. Откуда Начинать Поиск. Поиск В Обратном Направлении. Упражнения Раздела 9.5.3. 9.5.4. Сравнение Строк. 9.5.5. Числовые Преобразования. Упражнения Раздела 9.5.5. 9.6. Адаптеры Контейнеров. Определение Адаптера. Адаптер Stack. Адаптеры Очередей. Упражнения Раздела 9.6. Резюме. Термины. Глава 10. Обобщенные Алгоритмы. 10.1. Краткий Обзор. Как Работают Алгоритмы. Итераторы Делают Алгоритмы Независимыми От Типа Контейнера… …Но Алгоритмы Зависят От Типа Элементов. Упражнения Раздела 10.1. Ключевая Концепция. Алгоритмы Никогда Не Используют Функции Контейнеров. 10.2. Первый Взгляд На Алгоритмы. 10.2.1. Алгоритмы Только Для Чтения. Алгоритмы И Типы Элементов. Алгоритмы, Работающие С Двумя Последовательностями. Упражнения Раздела 10.2.1. Ключевая Концепция. Итераторы, Передаваемые В Качестве Аргументов. 10.2.2. Алгоритмы, Записывающие Элементы Контейнера. Алгоритмы Не Проверяют Операции Записи. Функция Back_Inserter(). Алгоритм Copy(). 10.2.3. Алгоритмы, Переупорядочивающие Элементы Контейнера. Устранение Дубликатов. Алгоритм Unique(). Применение Функций Контейнера Для Удаления Элементов. Упражнения Раздела 10.2.3. 10.3. Перенастройка Функций. 10.3.1. Передача Функций Алгоритму. Предикаты. Алгоритмы Сортировки. Упражнения Раздела 10.3.1. 10.3.2. Лямбда-Выражения. Знакомство С Лямбда-Выражением. Передача Аргументов Лямбда-Выражению. Использование Списка Захвата. Вызов Функции Find_If(). Алгоритм For_Each(). Объединив Все Вместе. Упражнения Раздела 10.3.2. 10.3.3. Захват И Возвращение Значений Лямбда-Выражениями. Захват По Значению. Захват По Ссылке. Совет. Не Усложняйте Списки Захвата Лямбда-Выражений. Неявный Захват. Изменяемые Лямбда-Выражения. Определение Типа Возвращаемого Значения Лямбда-Выражения. Упражнения Раздела 10.3.3. 10.3.4. Привязка Аргументов. Библиотечная Функция Bind(). Привязка Параметра Sz К Функции Check_Size(). Использование Имен Из Пространства Имен Placeholders. Аргументы Функции Bind(). Использование Функции Bind() Для Переупорядочивания Параметров. Привязка Ссылочных Параметров. Совместимость С Прежней Версией: Привязка Аргументов. Упражнения Раздела 10.3.4. 10.4. Возвращаясь К Итераторам. 10.4.1. Итераторы Вставки. Упражнения Раздела 10.4.1. 10.4.2. Потоковые Итераторы. Использование Итератора Istream_Iterator. Использование Потоковых Итераторов С Алгоритмами. Итераторы Istream_Iterator Позволяют Использовать Ленивое Вычисление. Использование Итератора Ostream_Iterator. Использование Потоковых Итераторов С Типами Класса. Упражнения Раздела 10.4.2. 10.4.3. Реверсивные Итераторы. Реверсивным Итераторам Необходим Оператор Декремента. Отношения Между Реверсивными И Другими Итераторами. Упражнения Раздела 10.4.3. 10.5. Структура Обобщенных Алгоритмов. 10.5.1. Пять Категорий Итераторов. Категории Итераторов. Упражнения Раздела 10.5.1. 10.5.2. Параметрическая Схема Алгоритмов. Алгоритмы С Одним Итератором Назначения. Алгоритмы С Двумя Итераторами, Указывающими Исходную Последовательность. 10.5.3. Соглашения Об Именовании Алгоритмов. Некоторые Алгоритмы Используют Перегруженные Версии Для Передачи Предиката. Алгоритмы С Версиями _If. Различия Между Копирующими И Не Копирующими Версиями. Упражнения Раздела 10.5.3. 10.6. Алгоритмы, Специфические Для Контейнеров. Алгоритм-Член Splice(). Специфические Для Списка Функции, Изменяющие Контейнер. Упражнения Раздела 10.6. Резюме. Термины. Глава 11. Ассоциативные Контейнеры. 11.1. Использование Ассоциативных Контейнеров. Использование Контейнера Map. Использование Контейнера Set. Упражнения Раздела 11.1. 11.2. Обзор Ассоциативных Контейнеров. 11.2.1. Определение Ассоциативного Контейнера. Инициализация Контейнеров Multimap И Multiset. Упражнения Раздела 11.2.1. 11.2.2. Требования К Типу Ключа. Типы Ключей Упорядоченных Контейнеров. Использование Функции Сравнения Для Типа Ключа. Упражнения Раздела 11.2.2. 11.2.3. Тип Pair. Функция Для Создания Объектов Типа Pair. Упражнения Раздела 11.2.3. 11.3. Работа С Ассоциативными Контейнерами. 11.3.1. Итераторы Ассоциативных Контейнеров. Итераторы Наборов Константны. Перебор Ассоциативного Контейнера. Ассоциативные Контейнеры И Алгоритмы. Упражнения Раздела 11.3.1. 11.3.2. Добавление Элементов. Добавление Элементов В Карту. Проверка Значения, Возвращаемого Функцией Insert(). Еще Раз О Синтаксисе. Добавление Элементов В Контейнеры Multiset И Multimap. Упражнения Раздела 11.3.2. 11.3.3. Удаление Элементов. 11.3.4. Индексация Карт. Использование Значения, Возвращенного Оператором Индексирования. Упражнения Раздела 11.3.4. 11.3.5. Доступ К Элементам. Использование Функции Find() Вместо Индексирования Карт. Поиск Элементов В Контейнерах Multimap И Multiset. Другое Решение На Основании Итератора. Функция Equal_Range(). Упражнения Раздела 11.3.5. 11.3.6. Карта Преобразования Слов. Программа Преобразования Слова. Создание Карты Преобразования. Осуществление Преобразования. Упражнения Раздела 11.3.6. 11.4. Неупорядоченные Контейнеры. Использование Неупорядоченного Контейнера. Управление Ячейками. Требования К Типу Ключа Неупорядоченных Контейнеров. Упражнения Раздела 11.4. Резюме. Термины. Глава 12. Динамическая Память. 12.1. Динамическая Память И Интеллектуальные Указатели. 12.1.1. Класс Shared_Ptr. Функция Make_Shared(). Копирование И Присвоение Указателей Shared_Ptr. Указатель Shared_Ptr Автоматически Удаляет Свои Объекты… …И Автоматически Освобождает Их Память. Классы, Ресурсы Которых Имеют Динамическую Продолжительность Существования. Определение Класса Strblob. Конструкторы Класса Strblob. Функции-Члены Доступа К Элементам. Копирование, Присвоение И Удаление Объектов Класса Strblob. Упражнения Раздела 12.1.1. 12.1.2. Непосредственное Управление Памятью. Использование Оператора New Для Динамического Резервирования И Инициализации Объектов. Динамически Созданные Константные Объекты. Исчерпание Памяти. Освобождение Динамической Памяти. Значения Указателя И Оператор Delete. Динамически Созданные Объекты Существуют До Тех Пор, Пока Не Будут Освобождены. Внимание! Управление Динамической Памятью Подвержено Ошибкам. Переустановка Значения Указателя После Удаления… …Обеспечивает Лишь Частичную Защиту. Упражнения Раздела 12.1.2. 12.1.3. Использование Указателя Shared_Ptr С Оператором New. Не Смешивайте Обычные Указатели С Интеллектуальными. Другие Операции С Указателем Shared_Ptr. Упражнения Раздела 12.1.3. 12.1.4. Интеллектуальные Указатели И Исключения. Интеллектуальные Указатели И Классы Без Деструкторов. Использование Собственного Кода Удаления. Внимание! Проблемы Интеллектуального Указателя. Упражнения Раздела 12.1.4. 12.1.5. Класс Unique_Ptr. Передача И Возвращение Указателя Unique_Ptr. Совместимость С Прежней Версией: Класс Auto_Ptr. Передача Функции Удаления Указателю Unique_Ptr. Упражнения Раздела 12.1.5. 12.1.6. Класс Weak_Ptr. Проверяемый Класс Указателя. Операции С Указателями. Упражнения Раздела 12.1.6. 12.2. Динамические Массивы. 12.2.1. Оператор New И Массивы. Резервирование Массива Возвращает Указатель На Тип Элемента. Инициализация Массива Динамически Созданных Объектов. Динамическое Резервирование Пустого Массива Вполне Допустимо. Освобождение Динамических Массивов. Интеллектуальные Указатели И Динамические Массивы. Упражнения Раздела 12.2.1. 12.2.2. Класс Allocator. Класс Allocator И Специальные Алгоритмы. Класс Allocator Резервирует Незаполненную Память. Алгоритмы Копирования И Заполнения Неинициализированной Памяти. Упражнения Раздела 12.2.2. 12.3. Использование Библиотеки: Программа Запроса Текста. 12.3.1. Проект Программы. Структуры Данных. Совместное Использование Данных Классами. Применение Класса Textquery. Упражнения Раздела 12.3.1. 12.3.2. Определение Классов Программы Запросов. Конструктор Textquery(). Класс Queryresult. Функция Query(). Вывод Результатов. Упражнения Раздела 12.3.2. Резюме. Термины. Часть III. Инструменты Для Разработчиков Классов. Глава 13. Управление Копированием. 13.1. Копирование, Присвоение И Удаление. 13.1.1. Конструктор Копий. Синтезируемый Конструктор Копий. Инициализация Копией. Параметры И Возвращаемые Значения. Ограничения На Инициализацию Копией. Компилятор Может Обойти Конструктор Копий. Упражнения Раздела 13.1.1. 13.1.2. Оператор Присвоения Копии. Перегруженный Оператор Присвоения. Синтезируемый Оператор Присвоения Копии. Упражнения Раздела 13.1.2. 13.1.3. Деструктор. Что Делает Деструктор. Когда Происходит Вызов Деструктора. Синтезируемый Деструктор. Упражнения Раздела 13.1.3. 13.1.4. Правило Три/Пять. Классы, Нуждающиеся В Деструкторах, Нуждаются В Копировании И Присвоении. Классы, Нуждающиеся В Копировании, Нуждаются Также В Присвоении, И Наоборот. Упражнения Раздела 13.1.4. 13.1.5. Использование Спецификатора = Default. 13.1.6. Предотвращение Копирования. Определение Функции Как Удаленной. Деструктор Не Должен Быть Удаленной Функцией-Членом. Функции-Члены Управления Копированием Могут Быть Синтезированы Как Удаленные. Закрытые Функции Управления Копированием. Упражнения Раздела 13.1.6. 13.2. Управление Копированием И Ресурсами. Упражнения Раздела 13.2. 13.2.1. Классы, Действующие Как Значения. Подобный Значению Оператор Присвоения Копии. Ключевая Концепция. Операторы Присвоения. Упражнения Раздела 13.2.1. 13.2.2. Определение Классов, Действующих Как Указатели. Счетчики Ссылок. Определение Класса Счетчика Ссылок. Функции-Члены Копирования Подобного Указателю Класса Используют Счетчик Ссылок. Упражнения Раздела 13.2.2. 13.3. Функция Swap(). Написание Собственной Функции Swap(). Функции Swap() Должны Вызвать Функции Swap(), А Не Std::Swap(). Использование Функции Swap() В Операторах Присвоения. Упражнения Раздела 13.3. 13.4. Пример Управления Копированием. Класс Message. Функции-Члены Save() И Remove(). Управление Копированием Класса Message. Деструктор Класса Message. Оператор Присвоения Копии Класса Message. Функция Swap() Класса Message. Упражнения Раздела 13.4. 13.5. Классы, Управляющие Динамической Памятью. Проект Класса Strvec. Определение Класса Strvec. Использование Функции-Члена Construct(). Функция-Член Alloc_N_Copy(). Функция-Член Free(). Функции-Члены Управления Копированием. Перемещение, А Не Копирование Элементов При Резервировании. Конструктор Перемещения И Функция Std::Move(). Функция-Член Reallocate(). Упражнения Раздела 13.5. 13.6. Перемещение Объектов. 13.6.1. Ссылки На R-Значение. L-Значения — Устойчивы; R-Значения — Эфемерны. Переменные Являются L-Значениями. Библиотечная Функция Move(). Упражнения Раздела 13.6.1. 13.6.2. Конструктор Перемещения И Присваивание При Перемещении. Операции Перемещения, Библиотечные Контейнеры И Исключения. Оператор Присваивания При Перемещении. Исходный Объект Перемещения Должен Быть В Удаляемом Состоянии. Синтезируемые Функции Перемещения. R-Значения Перемещаются, А L-Значения Копируются… …Но R-Значения Копируются, Если Нет Конструктора Перемещения. Операторы Присвоения Копии И Обмена И Перемещение. Совет. Обновленное Правило Трех. Функции Перемещения Для Класса Message. Итераторы Перемещения. Совет. Не Слишком Спешите С Перемещением. Упражнения Раздела 13.6.2. 13.6.3. Ссылки На R-Значение И Функции-Члены. Ссылки На L-Значения, R-Значения И Функции-Члены. Перегрузка И Ссылочные Функции. Упражнения Раздела 13.6.3. Резюме. Термины. Глава 14. Перегрузка Операторов И Преобразований. 14.1. Фундаментальные Концепции. Непосредственный Вызов Функции Перегруженного Оператора. Некоторые Операторы Не Следует Перегружать. Использование Определений, Совместимых Со Встроенным Смыслом. Составные Операторы Присвоения. Внимание! Будьте Осторожны При Использовании Перегруженных Операторов. Выбор Обычной Функции Или Члена Класса. Упражнения Раздела 14.1. 14.2. Операторы Ввода И Вывода. 14.2.1. Перегрузка Оператора Вывода << Оператор Вывода Класса Sales_Data. Операторы Вывода Обеспечивают Минимум Форматирования. Операторы Ввода-Вывода Не Должны Быть Функциями-Членами Класса. Упражнения Раздела 14.2.1. 14.2.2. Перегрузка Оператора Ввода >> Оператор Ввода Класса Sales_Data. Ошибки Во Время Ввода. Оповещение Об Ошибке. Упражнения Раздела 14.2.2. 14.3. Арифметические Операторы И Операторы Отношения. Упражнения Раздела 14.3. 14.3.1. Операторы Равенства. Упражнения Раздела 14.3.1. 14.3.2. Операторы Отношения. Упражнения Раздела 14.3.2. 14.4. Операторы Присвоения. Составные Операторы Присвоения. Упражнения Раздела 14.4. 14.5. Оператор Индексирования. Упражнения Раздела 14.5. 14.6. Операторы Инкремента И Декремента. Определение Префиксных Версий Операторов Инкремента И Декремента. Дифференциация Префиксных И Постфиксных Операторов. Явный Вызов Постфиксных Операторов. Упражнения Раздела 14.6. 14.7. Операторы Доступа К Членам. Ограничения На Возвращаемое Значение Оператора Стрелки. Упражнения Раздела 14.7. 14.8. Оператор Вызова Функции. Классы Объектов Функций С Состоянием. Упражнения Раздела 14.8. 14.8.1. Лямбда-Выражения — Объекты Функции. Классы, Представляющие Лямбда-Выражения С Захваченными Переменными. Упражнения Раздела 14.8.1. 14.8.2. Библиотечные Объекты Функций. Применение Библиотечного Объекта Функции С Алгоритмами. Упражнения Раздела 14.8.2. 14.8.3. Вызываемые Объекты И Тип Function. Разные Типы Могут Иметь Одинаковую Сигнатуру Вызова. Библиотечный Тип Function. Перегруженные Функции И Тип Function. Упражнения Раздела 14.8.3. 14.9. Перегрузка, Преобразование И Операторы. 14.9.1. Операторы Преобразования. Определение Класса С Оператором Преобразования. Внимание! Не Злоупотребляйте Функциями Преобразования. Операторы Преобразования Могут Привести К Удивительным Результатам. Явный Оператор Преобразования. Преобразование В Тип Bool. Упражнения Раздела 14.9.1. 14.9.2. Избегайте Неоднозначных Преобразований. Распознавание Аргумента И Взаимные Преобразования. Двусмысленность И Множественность Путей Преобразования Во Встроенные Типы. Перегруженные Функции И Конструкторы Преобразования. Внимание! Преобразования И Операторы. Перегруженные Функции И Пользовательские Преобразования. Упражнения Раздела 14.9.2. 14.9.3. Подбор Функций И Перегруженные Операторы. Упражнения Раздела 14.9.3. Резюме. Термины. Глава 15. Объектно-Ориентированное Программирование. 15.1. Краткий Обзор Ооп. Наследование. Динамическое Связывание. 15.2. Определение Базовых И Производных Классов. 15.2.1. Определение Базового Класса. Функции-Члены И Наследование. Управление Доступом И Наследование. Упражнения Раздела 15.2.1. 15.2.2. Определение Производного Класса. Виртуальные Функции В Производном Классе. Объекты Производного Класса И Преобразование Производного В Базовый. Конструкторы Производного Класса. Использование Членов Базового Класса Из Производного. Ключевая Концепция. Соблюдение Интерфейса Базового Класса. Наследование И Статические Члены. Объявления Производных Классов. Классы, Используемые Как Базовые. Предотвращение Наследования. Упражнения Раздела 15.2.2. 15.2.3. Преобразования И Наследование. Статический И Динамический Типы. Не Существует Неявного Преобразования Из Базового Типа В Производный… …И Нет Преобразований Между Объектами. Ключевая Концепция. Преобразования Между Типами, Связанными Наследованием. Упражнения Раздела 15.2.3. 15.3. Виртуальные Функции. Вызовы Виртуальной Функции Могут Быть Распознаны Во Время Выполнения. Ключевая Концепция. Полиморфизм В Языке С++ Виртуальные Функции В Производном Классе. Спецификаторы Final И Override. Виртуальные Функции И Аргументы По Умолчанию. Хитрость Виртуального Механизма. Упражнения Раздела 15.3. 15.4. Абстрактные Базовые Классы. Чистые Виртуальные Функции. Классы С Чистыми Виртуальными Функциями Являются Абстрактными. Конструктор Производного Класса Инициализирует Только Свой Прямой Базовый Класс. Ключевая Концепция. Рефакторинг. Упражнения Раздела 15.4. 15.5. Управление Доступом И Наследование. Защищенные Члены. Открытое, Закрытое И Защищенное Наследование. Доступность Преобразования Производного Класса В Базовый Класс. Ключевая Концепция. Проект Класса И Защищенные Члены. Дружественные Отношения И Наследование. Освобождение Индивидуальных Членов. Уровни Защиты Наследования По Умолчанию. Упражнения Раздела 15.5. 15.6. Область Видимости Класса При Наследовании. Поиск Имен Осуществляется Во Время Компиляции. Конфликт Имен И Наследование. Применение Оператора Области Видимости Для Доступа К Скрытым Членам. Ключевая Концепция. Поиск Имени И Наследование. Как Обычно, Поиск Имени Осуществляется Перед Проверкой Соответствия Типов. Виртуальные Функции И Область Видимости. Вызов Скрытой Виртуальной Функции Через Базовый Класс. Переопределение Перегруженных Функций. Упражнения Раздела 15.6. 15.7. Конструкторы И Функции Управления Копированием. 15.7.1. Виртуальные Деструкторы. Виртуальный Деструктор Отменяет Синтез Функций Перемещения. Упражнения Раздела 15.7.1. 15.7.2. Синтезируемые Функции Управления Копированием И Наследование. Базовые Классы И Удаленные Функции Управления Копированием В Производном Классе. Функции Перемещения И Наследование. Упражнения Раздела 15.7.2. 15.7.3. Функции-Члены Управления Копированием Производного Класса. Определение Конструктора Копии Или Перемещения Производного Класса. Оператор Присвоения Производного Класса. Деструктор Производного Класса. Вызовы Виртуальных Функций В Конструкторах И Деструкторах. Упражнения Раздела 15.7.3. 15.7.4. Унаследованные Конструкторы. Характеристики Унаследованного Конструктора. Упражнения Раздела 15.7.4. 15.8. Контейнеры И Наследование. Помещайте В Контейнеры Указатели (Интеллектуальные), А Не Объекты. Упражнения Раздела 15.8. 15.8.1. Разработка Класса Basket. Определение Членов Класса Basket. Сокрытие Указателей. Имитация Виртуального Копирования. Упражнения Раздела 15.8.1. 15.9. Возвращаясь К Запросам Текста. 15.9.1. Объектно-Ориентированное Решение. Абстрактный Базовый Класс. Ключевая Концепция. Наследование Или Композиция. Сокрытие Иерархии В Классе Интерфейса. Как Работают Эти Классы. Упражнения Раздела 15.9.1. 15.9.2. Классы Query_Base И Query. Класс Query. Оператор Вывода Класса Query. Упражнения Раздела 15.9.2. 15.9.3. Производные Классы. Класс Wordquery. Класс Notquery И Оператор ~ Класс Binaryquery. Классы Andquery, Orquery И Их Операторы. Упражнения Раздела 15.9.3. 15.9.4. Виртуальные Функции Eval(). Функция Orquery::Eval(). Функция Andquery::Eval(). Функция Notquery::Eval(). Упражнения Раздела 15.9.4. Резюме. Термины. Глава 16. Шаблоны И Обобщенное Программирование. 16.1. Определение Шаблона. 16.1.1. Шаблоны Функций. Создание Экземпляра Шаблона Функции. Параметры Типа Шаблона. Параметры Значения Шаблона. Шаблоны Функции Со Спецификаторами Inline И Constexpr. Создание Кода, Независимого От Типа. Компиляция Шаблона. Ключевая Концепция. Шаблоны И Заголовки. Ошибки Компиляции Проявляются, Главным Образом, Во Время Создания Экземпляра. Упражнения Раздела 16.1.1. 16.1.2. Шаблоны Класса. Определение Шаблона Класса. Создание Экземпляра Шаблона Класса. Ссылки На Тип Шаблона В Пределах Шаблона. Функции-Члены Шаблонов Класса. Функция Check() И Функции Доступа К Членам. Конструкторы Blob(). Создание Функций-Членов Шаблона Класса. Упрощение Использования Имени Шаблона Класса В Коде Класса. Использование Имени Шаблона Класса Вне Тела Шаблона. Шаблоны Классов И Дружественные Отношения. Дружественные Отношения "Один К Одному". Общие И Специфические Дружественные Отношения Шаблонов. Объявление Параметра Типа Шаблона Дружественным. Псевдонимы Типа Шаблона. Статические Члены Шаблонов Класса. Упражнения Раздела 16.1.2. 16.1.3. Параметры Шаблона. Параметры Шаблона И Область Видимости. Объявления Шаблона. Использование Членов Типа. Аргументы Шаблона По Умолчанию. Аргументы По Умолчанию Шаблона И Шаблоны Класса. Упражнения Раздела 16.1.3. 16.1.4. Шаблоны-Члены. Шаблоны-Члены Обычных (Не Шаблонных) Классов. Шаблоны-Члены Шаблонов Класса. Создание Экземпляров И Шаблоны-Члены. Упражнения Раздела 16.1.4. 16.1.5. Контроль Создания Экземпляра. Определения Экземпляров Создают Экземпляры Всех Членов. Упражнения Раздела 16.1.5. 16.1.6. Эффективность И Гибкость. Привязка Функции Удаления Во Время Выполнения. Привязка Функции Удаления Во Время Компиляции. Упражнения Раздела 16.1.6. 16.2. Дедукция Аргумента Шаблона. 16.2.1. Преобразования И Параметры Типа Шаблона. Параметры Функций С Одинаковым Типом Параметра Шаблона. Обычные Преобразования Применимы К Обычным Аргументам. Упражнения Раздела 16.2.1. 16.2.2. Явные Аргументы Шаблона Функции. Определение Явного Аргумента Шаблона. Нормальные Преобразования Применимы К Аргументам, Определенным Явно. Упражнения Раздела 16.2.2. 16.2.3. Замыкающие Типы Возвращаемого Значения И Трансформация Типа. Трансформация Типа Классов Библиотечных Шаблонов. Упражнения Раздела 16.2.3. 16.2.4. Указатели На Функцию И Дедукция Аргумента. 16.2.5. Дедукция Аргумента Шаблона И Ссылки. Дедукция Типа Из Параметров Ссылки На L-Значения Функций. Дедукция Типа Из Параметров Ссылки На R-Значения Функций. Сворачивание Ссылок И Параметры Ссылок На R-Значения. Шаблоны Функций С Параметрами Ссылки На R-Значения. Упражнения Раздела 16.2.5. 16.2.6. Функция Std::Move(). Как Определена Функция Std::Move(). Как Работает Функция Std::Move(). Оператор Static_Cast Поддерживает Приведение L-Значения К Ссылке На R-Значение. Упражнения Раздела 16.2.6. 16.2.7. Перенаправление. Определение Параметров Функции, Хранящих Информацию Типа. Использование Функции Std::Forward() Для Сохранения Информации Типа В Вызове. Упражнения Раздела 16.2.7. 16.3. Перегрузка И Шаблоны. Создание Перегруженных Шаблонов. Несколько Подходящих Шаблонов. Не Шаблон И Перегрузка Шаблона. Перегруженные Шаблоны И Преобразования. Пропуск Объявления Может Нарушить Программу. Упражнения Раздела 16.3. 16.4. Шаблоны С Переменным Количеством Аргументов. Оператор Sizeof... Упражнения Раздела 16.4. 16.4.1. Шаблоны Функции С Переменным Количеством Аргументов. Упражнения Раздела 16.4.1. 16.4.2. Развертывание Пакета. Концепция Развертывания Пакета. Упражнения Раздела 16.4.2. 16.4.3. Перенаправление Пакетов Параметров. Совет. Перенаправление И Шаблоны С Переменным Количеством Аргументов. Упражнения Раздела 16.4.3. 16.5. Специализация Шаблона. Специализация Шаблона Функции. Перегрузка Функций Или Специализация Шаблона. Ключевая Концепция. Обычные Правила Области Видимости Относятся И К Специализации. Специализация Шаблона Класса. Частичная Специализация Шаблона Класса. Специализация Членов, Но Не Класса. Упражнения Раздела 16.5. Резюме. Термины. Часть IV. Дополнительные Темы. Глава 17. Специализированные Средства Библиотек. 17.1. Тип Tuple. 17.1.1. Определение И Инициализация Кортежей. Доступ К Членам Кортежа. Операторы Сравнения И Равенства. Упражнения Раздела 17.1.1. 17.1.2. Использование Кортежей Для Возвращения Нескольких Значений. Функция, Возвращающая Кортеж. Использование Возвращенного Функцией Кортежа. Упражнения Раздела 17.1.2. 17.2. Тип Bitset. 17.2.1. Определение И Инициализация Наборов Битов. Инициализация Набора Битов Беззнаковым Значением. Инициализация Набора Битов Из Строки. Упражнения Раздела 17.2.1. 17.2.2. Операции С Наборами Битов. Возвращение Значений Из Набора Битов. Операторы Ввода-Вывода Типа Bitset. Использование Наборов Битов. Упражнения Раздела 17.2.2. 17.3. Регулярные Выражения. 17.3.1. Использование Библиотеки Регулярных Выражений. Определение Параметров Объекта Regex. Ошибки В Определении И Использовании Регулярного Выражения. Совет. Избегайте Создания Ненужных Регулярных Выражений. Классы Регулярного Выражения И Тип Исходной Последовательности. Упражнения Раздела 17.3.1. 17.3.2. Типы Итераторов Классов Соответствия И Regex. Использование Итератора Sregex_Iterator. Использование Данных Соответствия. Упражнения Раздела 17.3.2. 17.3.3. Использование Подвыражений. Подвыражения Для Проверки Правильности Данных. Операции С Типом Соответствия. Упражнения Раздела 17.3.3. 17.3.4. Использование Функции Regex_Replace(). Замена Только Части Исходной Последовательности. Флаги, Контролирующие Соответствия И Формат. Использование Флагов Формата. Упражнения Раздела 17.3.4. 17.4. Случайные Числа. 17.4.1. Процессоры Случайных Чисел И Распределения. Типы Распределения И Процессоры. Сравнение Процессора Случайных Чисел И Функции Rand(). Процессоры Создают Последовательности Чисел. Начальное Число Генератора. Упражнения Раздела 17.4.1. 17.4.2. Другие Виды Распределений. Создание Случайных Вещественных Чисел. Использование Типа По Умолчанию Для Результата Распределения. Создание Чисел С Неравномерным Распределением. Класс Bernoulli_Distribution. Упражнения Раздела 17.4.2. 17.5. Еще О Библиотеке Ввода И Вывода. 17.5.1. Форматированный Ввод И Вывод. Большинство Манипуляторов Изменяет Флаг Формата. Контроль Формата Логических Значений. Определение Базы Целочисленных Значений. Индикация Базы Числа В Выводе. Контроль Формата Значений С Плавающей Точкой. Определение Точности. Определение Формы Записи Чисел С Плавающей Запятой. Вывод Десятичной Точки. Дополнение Вывода. Контроль Формата Ввода. Упражнения Раздела 17.5.1. 17.5.2. Не Форматированные Операции Ввода-Вывода. Однобайтовые Операции. Возвращение Во Входной Поток. Возвращение Значения Типа Int Из Операций Ввода. Внимание! Низкоуровневые Функции Подвержены Ошибкам. Многобайтовые Операции. Определение Количества Читаемых Символов. Упражнения Раздела 17.5.2. 17.5.3. Произвольный Доступ К Потоку. Функции Установки И Сообщения. Существует Только Один Маркер. Перемещение Маркера. Доступ К Маркеру. Чтение И Запись В Тот Же Файл. Упражнения Раздела 17.5.3. Резюме. Термины. Глава 18. Инструменты Для Крупномасштабных Программ. 18.1. Обработка Исключений. 18.1.1. Передача Исключений. Прокрутка Стека. Объекты Автоматически Удаляются При Прокрутке Стека. Деструкторы И Исключения. Объект Исключения. Упражнения Раздела 18.1.1. 18.1.2. Обработка Исключения. Поиск Соответствующего Обработчика. Повторная Передача Исключения. Обработчик Для Всех Исключений. Упражнения Раздела 18.1.2. 18.1.3. Блок Try Функции И Конструкторы. Упражнения Раздела 18.1.3. 18.1.4. Спецификатор Исключения Noexcept. Нарушение Спецификации Исключения. Совместимость С Прежней Версией. Спецификации Исключения. Аргументы Спецификации Noexcept. Оператор Noexcept. Спецификации Исключения И Указатели, Виртуальные Функции, Функции Управления Копированием. Упражнения Раздела 18.1.4. 18.1.5. Иерархии Классов Исключений. Классы Исключения Для Приложения Книжного Магазина. Использование Собственных Типов Исключений. Упражнения Раздела 18.1.5. 18.2. Пространства Имен. 18.2.1. Определение Пространств Имен. Каждое Пространство Имен Является Областью Видимости. Пространства Имен Могут Быть Разобщены. Определение Пространства Имен Cplusplus_Primer. Определение Членов Пространства Имен. Специализация Шаблона. Глобальное Пространство Имен. Вложенные Пространства Имен. Встраиваемые Пространства Имен. Безымянные Пространства Имен. Безымянные Пространства Имен Вместо Статических Файловых Объектов. Упражнения Раздела 18.2.1. 18.2.2. Использование Членов Пространства Имен. Псевдонимы Пространства Имен. Объявления Using (Напоминание). Директива Using. Директива Using И Область Видимости. Пример Директив Using. Заголовки И Объявления Using Или Директивы. Внимание! Избегайте Директив Using. Упражнения Раздела 18.2.2. 18.2.3. Классы, Пространства Имен И Области Видимости. Зависимый От Аргумента Поиск И Параметры Типа Класса. Поиск И Функции Std::Move() И Std::Forward(). Дружественные Объявления И Зависимый От Аргумента Поиск. Упражнения Раздела 18.2.3. 18.2.4. Перегрузка И Пространства Имен. Зависимый От Аргумента Поиск И Перегрузка. Перегрузка И Объявления Using. Перегрузка И Директивы Using. Перегрузка При Нескольких Директивах Using. Упражнения Раздела 18.2.4. 18.3. Множественное И Виртуальное Наследование. 18.3.1. Множественное Наследование. При Множественном Наследовании Классы Наследуют Состояние Каждого Из Базовых Классов. Конструкторы Производного Класса Инициализируют Все Объекты Базовых Классов. Унаследованные Конструкторы И Множественное Наследование. Деструкторы И Множественное Наследование. Функции Копирования И Перемещения При Множественном Наследовании. Упражнения Раздела 18.3.1. 18.3.2. Преобразования И Несколько Базовых Классов. Поиск На Основании Типа Указателя Или Ссылки. Упражнения Раздела 18.3.2. 18.3.3. Область Видимости Класса При Множественном Наследовании. Упражнения Раздела 18.3.3. Код Для Упражнений Раздела 18.3.3. 18.3.4. Виртуальное Наследование. Разные Классы Panda. Использование Виртуального Базового Класса. Для Базовых Классов Поддерживаются Стандартные Преобразования. Видимость Членов Виртуальных Базовых Классов. Упражнения Раздела 18.3.4. 18.3.5. Конструкторы И Виртуальное Наследование. Как Создается Объект При Виртуальном Наследовании. Порядок Выполнения Конструкторов И Деструкторов. Упражнения Раздела 18.3.5. Резюме. Термины. Глава 19. Специализированные Инструменты И Технологии. 19.1. Контроль Распределения Памяти. 19.1.1. Перегрузка Операторов New И Delete. Интерфейс Функций Operator New() И Operator Delete(). Терминология. Выражение New Или Функция Operator New(). Функции Malloc() И Free(). Упражнения Раздела 19.1.1. 19.1.2. Размещающий Оператор New. Явный Вызов Деструктора. 19.2. Идентификация Типов Времени Выполнения. 19.2.1. Оператор Dynamic_Cast. Приведение Dynamic_Cast Для Типа Указателя. Приведение Dynamic_Cast Для Типа Ссылки. Упражнения Раздела 19.2.1. 19.2.2. Оператор Typeid. Использование Оператора Typeid. Упражнения Раздела 19.2.2. 19.2.3. Использование Rtti. Иерархия Класса. Оператор Равенства, Чувствительный К Типу. Виртуальная Функция Equal(). Функция Equal() Базового Класса. 19.2.4. Класс Type_Info. Упражнения Раздела 19.2.4. 19.3. Перечисления. Перечислители. Подобно Классам, Перечисления Определяют Новые Типы. Определение Размера Перечисления. Предварительные Объявления Для Перечислений. Соответствие Параметров И Перечисления. 19.4. Указатель На Член Класса. 19.4.1. Указатели На Переменные-Члены. Использование Указателей На Переменные-Члены. Функция, Возвращающая Указатель На Переменную-Член. Упражнения Раздела 19.4.1. 19.4.2. Указатели На Функции-Члены. Использование Указателя На Функцию-Член. Использование Псевдонимов Типов Для Указателей На Члены. Таблицы Указателей На Функцию-Член. Упражнения Раздела 19.4.2. 19.4.3. Использование Функций-Членов Как Вызываемых Объектов. Использование Шаблона Function Для Создания Вызываемого Объекта. Использование Шаблона Mem_Fn Для Создания Вызываемого Объекта. Использование Функции Bind() Для Создания Вызываемого Объекта. Упражнения Раздела 19.4.3. 19.5. Вложенные Классы. Объявление Вложенного Класса. Определение Вложенного Класса Вне Содержащего Класса. Определение Членов Вложенного Класса. Определение Статических Членов Вложенных Классов. Поиск Имен В Области Видимости Вложенного Класса. Вложенные И Содержащие Классы Независимы. Упражнения Раздела 19.5. 19.6. Класс Объединения, Экономящий Место. Определение Объединения. Использование Объединения. Анонимные Объединения. Объединения С Членами Типа Класса. Использование Класса Для Управления Членами Объединения. Управление Дискриминанта И Удаление Строки. Управление Членами Объединения, Требующее Управления Копированием. Упражнения Раздела 19.6. 19.7. Локальные Классы. Локальные Классы Не Могут Использовать Переменные Из Области Видимости Функции. К Локальным Классам Применимы Обычные Правила Доступа. Поиск Имен В Локальном Классе. Вложенные Локальные Классы. 19.8. Возможности, Снижающие Переносимость. 19.8.1. Битовые Поля. Использование Битовых Полей. 19.8.2. Спецификатор Volatile. Синтезируемые Функции Управления Копированием Не Применимы К Асинхронно-Изменяемым Объектам. 19.8.3. Директивы Компоновки: Extern "C". Объявление Функций, Написанных На Языке, Отличном От С++ Директивы Компоновки И Заголовки. Указатели На Функции, Объявленные В Директиве Extern "С". Директивы Компоновки Применимы Ко Всем Объявлениям. Экспорт Функций, Созданных На Языке С++, В Другой Язык. Поддержка Препроцессора При Компоновке На Языке С. Перегруженные Функции И Директивы Компоновки. Упражнения Раздела 19.8.3. Резюме. Термины. Приложения. Приложение A. Библиотека. А.1. Имена И Заголовки Стандартной Библиотеки. А.2. Краткий Обзор Алгоритмов. А.2.1. Алгоритмы Поиска Объекта. Простой Алгоритм Поиска. Алгоритм Поиска Одного Из Нескольких Значений. Алгоритм Поиска Последовательности. А.2.2. Другие Алгоритмы, Осуществляющие Только Чтение. А.2.3. Алгоритмы Бинарного Поиска. А.2.4. Алгоритмы Записи В Элементы Контейнера. Алгоритмы, Которые Записывают, Но Не Читают Значения Элементов. Алгоритмы Записи С Итераторами Ввода. Алгоритмы Записи С Прямыми Итераторами. Алгоритмы Записи С Двунаправленными Итераторами. А.2.5. Алгоритмы Сортировки И Разделения. Алгоритмы Разделения. Алгоритмы Сортировки. А.2.6. Общие Функции Изменения Порядка. Переупорядочивающие Алгоритмы, Использующие Прямые Итераторы. Переупорядочивающие Алгоритмы, Использующие Двунаправленные Итераторы. Переупорядочение Алгоритмов С Помощью Итераторов Прямого Доступа. А.2.7. Алгоритмы Перестановки. А.2.8. Алгоритмы Набора Для Отсортированных Последовательностей. А.2.9. Минимальные И Максимальные Значения. Лексикографическое Сравнение. А.2.10. Числовые Алгоритмы. A.3. Случайные Числа. А.3.1. Распределение Случайных Чисел. Равномерное Распределение. Распределение Бернулли. Распределение Пуассона. Нормальное Распределение Или Распределение Гаусса. Выборочное Распределение. А.3.2. Процессоры Случайных Чисел. Тип Default_Random_Engine. Тип Linear_Congruential_Engine. Тип Mersenne_Twister_Engine. Тип Subtract_With_Carry_Engine. Тип Discard_Block_Engine. Тип Independent_Bits_Engine. Тип Shuffle_Order_Engine.
Язык программирования Perl.
Лекция 2. Литералы И Скалярные Данные. Лекция 3. Основные Операции. Лекция 4. Управляющие Структуры. Лекция 5. Списки И Массивы. Лекция 6. Хэши. Лекция 7. Текст, Строки И Символы. Лекция 8. Регулярные Выражения. Лекция 9. Средства Ввода-Вывода. Лекция 10. Отчеты. Лекция 11. Ссылки. Лекция 12. Подпрограммы. Лекция 13. Библиотеки, Пакеты И Модули. Лекция 14. Объектное Программирование. Лекция 15. Работа С Базами Данных. Лекция 16. Взаимодействие Процессов. Лекция 17. Работа В Ip-Сетях. Лекция 18. Web-Программирование.… Дополнения. Литература.
Язык программирования Си.
Глава 1. Обзор Языка. 1.1 Начнем, Пожалуй. 1.2 Переменные И Арифметические Выражения. 1.3 Инструкция For. 1.4 Именованные Константы. 1.5 Ввод-Вывод Символов. 1.5.1 Копирование Файла. 1.5.2 Подсчет Символов. 1.5.3 Подсчет Строк. 1.5.4 Подсчет Слов. 1.6 Массивы. 1.7 Функции. 1.8 Аргументы. Вызов По Значению. 1.9 Символьные Массивы. 1.10 Внешние Переменные И Область Видимости. Глава 2. Типы, Операторы И Выражения. 2.1 Имена Переменных. 2.2 Типы И Размеры Данных. 2.3 Константы. 2.4 Объявления. 2.5 Арифметические …Операторы. 2.6 Операторы Отношения И Логические Операторы. 2.7 Преобразования Типов. 2.8 Операторы Инкремента И Декремента. 2.9 Побитовые Операторы. 2.10 Операторы И Выражения Присваивания. 2.11 Условные Выражения. 2.12 Приоритет И Очередность Вычислений. Глава 3. Управление. 3.1 Инструкции И Блоки. 3.2 Конструкция If-Else. 3.3 Конструкция Else-If. 3.4 Переключатель Switch. 3.5 Циклы While И For. 3.6 Цикл Do-While. 3.7 Инструкции Break И Continue. 3.8 Инструкция Goto И Метки. Глава 4. Функции И Структура Программы. 4.1 Основные Сведения О Функциях. 4.2 Функции, Возвращающие Нецелые Значения. 4.3 Внешние Переменные. 4.4 Области Видимости. 4.5 Заголовочные Файлы. 4.6 Статические Переменные. 4.7 Регистровые Переменные. 4.8 Блочная Структура. 4.9 Инициализация. 4.10 Рекурсия. 4.11 Препроцессор Языка Си. 4.11.1 Включение Файла. 4.11.2 Макроподстановка. 4.11.3 Условная Компиляция. Глава 5. Указатели И Массивы. 5.1 Указатели И Адреса. 5.2 Указатели И Аргументы Функций. 5.3 Указатели И Массивы. 5.4 Адресная Арифметика. 5.5 Символьные Указатели Функции. 5.6 Массивы Указателей, Указатели На Указатели. 5.7 Многомерные Массивы. 5.8 Инициализация Массивов Указателей. 5.9 Указатели Против Многомерных Массивов. 5.10 Аргументы Командной Строки. 5.11 Указатели На Функции. 5.12 Сложные Объявления. Глава 6. Структуры. 6.1 Основные Сведения О Структурах. 6.2 Структуры И Функции. 6.3 Массивы Структур. 6.4 Указатели На Структуры. 6.5 Структуры Со Ссылками На Себя. 6.6 Просмотр Таблиц. 6.7 Средство Typedef. 6.8 Объединения. 6.9 Битовые Поля. Глава 7. Ввод И Вывод. 7.1 Стандартный Ввод-Вывод. 7.2 Форматный Вывод (Printf). 7.3 Списки Аргументов Переменной Длины. 7.4 Форматный Ввод (Scanf). 7.5 Доступ К Файлам. 7.6 Управление Ошибками (Stderr И Exit). 7.7 Ввод-Вывод Строк. 7.8 Другие Библиотечные Функции. 7.8.1 Операции Со Строками. 7.8.2 Анализ Класса Символов И Преобразование Символов. 7.8.3 Функция Ungetc. 7.8.4 Исполнение Команд Операционной Системы. 7.8.5 Управление Памятью. 7.8.6 Математические Функции. 7.8.7 Генератор Случайных Чисел. Глава 8. Интерфейс С Системой Unix. 8.1 Дескрипторы Файлов. 8.2 Нижний Уровень Ввода-Вывода (Read И Write). 8.3 Системные Вызовы Open, Creat, Close, Unlink. 8.4 Произвольный Доступ (Lseek). 8.5 Пример. Реализация Функций Fopen И Getc. 8.6 Пример. Печать Каталогов. 8.7 Пример. Распределитель Памяти. Приложение A. Справочное Руководство. A1. Введение. A2. Соглашения О Лексике. A2.1. Лексемы (Tokens). A2.2. Комментарий. A2.3. Идентификаторы. A2.4. Ключевые Слова. A2.5. Константы. A2.5.1. Целые Константы. A2.5.2. Символьные Константы. А2.5.3. Константы С Плавающей Точкой. A2.5.4. Константы-Перечисления. A2.6. Строковые Литералы. A3. Нотация Синтаксиса. A4. Что Обозначают Идентификаторы. A4.1. Класс Памяти. A4.2. Базовые Типы. A4.3. Производные Типы. A4.4. Квалификаторы Типов. A5. Объекты И Lvalues. A6. Преобразования. A6.1. Целочисленное Повышение. A6.2. Целочисленные Преобразования. A6.3. Целые И Числа С Плавающей Точкой. A6.4. Типы С Плавающей Точкой. А6.5. Арифметические Преобразования. A6.6. Указатели И Целые. A6.7. Тип Void. А6.8. Указатели На Void. A7. Выражения. A7.1. Генерация Указателя. A7.2. Первичные Выражения. A7.3. Постфиксные Выражения. A7.3.1. Обращение К Элементам Массива. A7.3.2. Вызов Функции. A7.3.3. Обращение К Структурам. A7.3.4. Постфиксные Операторы Инкремента И Декремента. А7.4. Унарные Операторы. А7.4.1. Префиксные Операторы Инкремента И Декремента. A7.4.2. Оператор Получения Адреса. A7.4.3. Оператор Косвенного Доступа. A7.4.4. Оператор Унарный Плюс. A7.4.5. Оператор Унарный Минус. A7.4.6. Оператор Побитового Отрицания. A7.4.7. Оператор Логического Отрицания. A7.4.8. Оператор Определения Размера Sizeof. A7.5. Оператор Приведения Типа. A7.6. Мультипликативные Операторы. A7.7. Аддитивные Операторы. A7.8. Операторы Сдвига. A7.9. Операторы Отношения. A7.10. Операторы Равенства. A7.11. Оператор Побитового И. A7.12. Оператор Побитового Исключающего Или. A7.13. Оператор Побитового Или. A7.14. Оператор Логического И. A7.15. Оператор Логического Или. А7.16. Условный Оператор. A7.17. Выражения Присваивания. A7.18. Оператор Запятая. A7.19. Константные Выражения. A8. Объявления. A8.1. Спецификаторы Класса Памяти. А8.2. Спецификаторы Типа. A8.3. Объявления Структур И Объединений. A8.4. Перечисления. А8.5. Объявители. A8.6. Что Означают Объявители. A8.6.1. Объявители Указателей. А8.6.2. Объявители Массивов. А8.6.3. Объявители Функций. A8.7. Инициализация. A8.8. Имена Типов. А8.9. Объявление Typedef. A8.10. Эквивалентность Типов. A9. Инструкции. A9.1. Помеченные Инструкции. A9.2. Инструкция-Выражение. A9.3. Составная Инструкция. A9.4. Инструкции Выбора. A9.5. Циклические Инструкции. A9.6. Инструкции Перехода. А10. Внешние Объявления. A10.1. Определение Функции. A10.2. Внешние Объявления. A11. Область Видимости И Связи. A11.1. Лексическая Область Видимости. A11.2. Связи. A12. Препроцессирование. A12.1. Трехзнаковые Последовательности. A12.2. Склеивание Строк. А12.3. Макроопределение И Макрорасширение. A12.4. Включение Файла. A12.5. Условная Компиляция. A12.6. Нумерация Строк. A12.7. Генерация Сообщения Об Ошибке. A12.8. Прагма. A12.9. Пустая Директива. A12.10. Заранее Определенные Имена. A13. Грамматика. Приложение B. Стандартная Библиотека. B1. Ввод-Вывод: ‹Stdio.H› B1.1. Операции Над Файлами. B1.2. Форматный Вывод. B1.3. Форматный Ввод. B1.4. Функции Ввода-Вывода Символов. B1.5. Функции Прямого Ввода-Вывода. B1.6. Функции Позиционирования Файла. B1.7. Функции Обработки Ошибок. B2. Проверки Класса Символа: ‹Ctype.H› B3. Функции, Оперирующие Со Строками: <String.H> B4. Математические Функции: <Math.H> B5. Функции Общего Назначения: <Stdlib.H> B6. Диагностика: <Assert.H> B7. Списки Аргументов Переменной Длины: <Stdarg.H> B8. Дальние Переходы: <Setjmp.H> B9. Сигналы: <Signal.H> B10. Функции Даты И Времени: ‹Time.H› B11. Зависящие От Реализации Пределы: <Limits.H> И <Float.H> Приложение C. Перечень Изменений. Предметный Указатель. А. Б. В. Г. Д. Е. З. И. К. Л. М. H. O. П. Р. С. Т. У. Ф. Х. Ц. Ч. Ш. Э. A. B. C. D. E. F. G. H. I. L. M. N. O. P. R. S. T. U. V. W. X.
Искусство программирования на языке сценариев командной оболочки.
Часть 1. Введение. Глава 1. Зачем Необходимо Знание Языка Shell? Глава 2. Для Начала О Sha-Bang. Пример 2-1. Cleanup: Сценарий Очистки Лог-Файлов В /Var/Log. Пример 2-2. Cleanup: Расширенная Версия Предыдущего Сценария. 2.1. Запуск Сценария. 2.2. Упражнения. Часть 2. Основы. Глава 3. Служебные Символы. Пример 3-1. Вложенные Блоки И Перенаправление Ввода-Вывода. Пример 3-2. Сохранение Результата Исполнения Вложенного Блока В Файл. Пример 3-3. Запуск Цикла В Фоновом Режиме. Пример 3-4. Резервное Архивирование …Всех Файлов, Которые Были Изменены В Течение Последних Суток. Глава 4. Переменные И Параметры. Введение. 4.1. Подстановка Переменных. Пример 4-1. Присваивание Значений Переменным И Подстановка Значений Переменных. 4.2. Присваивание Значений Переменным. Пример 4-2. Простое Присваивание. Пример 4-3. Присваивание Значений Переменным Простое И Замаскированное. 4.3. Переменные Bash Не Имеют Типа. Пример 4-4. Целое Число Или Строка? 4.4. Специальные Типы Переменных. Пример 4-5. Позиционные Параметры. Пример 4-6. Wh, Whois Выяснение Имени Домена. Пример 4-7. Использование Команды Shift. Глава 5. Кавычки. Пример 5-1. Вывод "Причудливых" Переменных. Пример 5-2. Экранированные Символы. Глава 6. Завершение И Код Завершения. Пример 6-1. Завершение / Код Завершения. Пример 6-2. Использование Символа ! Для Логической Инверсии Кода Возврата. Глава 7. Проверка Условий. 7.1. Конструкции Проверки Условий. Пример 7-1. Что Есть "Истина"? Пример 7-2. Эквиваленты Команды Test -- /Usr/Bin/Test, [ ], И /Usr/Bin/[ Пример 7-3. Арифметические Выражения Внутри (( )). 7.2. Операции Проверки Файлов. Пример 7-4. Проверка "Битых" Ссылок. 7.3. Операции Сравнения. Пример 7-5. Операции Сравнения. Пример 7-6. Проверка -- Является Ли Строка Пустой. Пример 7-7. Zmost. 7.4. Вложенные Условные Операторы If/Then. 7.5. Проверка Степени Усвоения Материала. Глава 8. Операции И Смежные Темы. 8.1. Операторы. Пример 8-1. Наибольший Общий Делитель. Пример 8-2. Арифметические Операции. Пример 8-3. Построение Сложных Условий, Использующих && И || 8.2. Числовые Константы. Пример 8-4. Различные Представления Числовых Констант. Часть 3. Углубленный Материал. Глава 9. К Вопросу О Переменных. 9.1. Внутренние Переменные. Пример 9-1. $Ifs И Пробельные Символы. Пример 9-2. Ограничения Времени Ожидания Ввода. Пример 9-3. Еще Один Пример Ограничения Времени Ожидания Ввода От Пользователя. Пример 9-4. Ограничение Времени Ожидания Команды Read. Пример 9-5. Я -- Root? Пример 9-6. Arglist: Вывод Списка Аргументов С Помощью Переменных $* И $@ Пример 9-7. Противоречия В Переменных $* И $@ Пример 9-8. Содержимое $* И $@, Когда Переменная $Ifs -- Пуста. Пример 9-9. Переменная "Подчеркивание". 9.2. Работа Со Строками. Пример 9-10. Вставка Пустых Строк Между Параграфами В Текстовом Файле. Пример 9-11. Преобразование Графических Файлов Из Одного Формата В Другой, С Изменением Имени Файла. 9.2.1. Использование Awk При Работе Со Строками. Пример 9-12. Альтернативный Способ Извлечения Подстрок. 9.2.2. Дальнейшее Обсуждение. 9.3. Подстановка Параметров. Пример 9-13. Подстановка Параметров И Сообщения Об Ошибках. Пример 9-14. Подстановка Параметров И Сообщение О "Порядке Использования". Пример 9-15. Длина Переменной. Пример 9-16. Поиск По Шаблону В Подстановке Параметров. Пример 9-17. Изменение Расширений В Именах Файлов: 9.4. Объявление Переменных: Declare И Typeset. Пример 9-20. Объявление Переменных С Помощью Инструкции Declare. 9.5. Косвенные Ссылки На Переменные. Пример 9-21. Косвенные Ссылки. Пример 9-22. Передача Косвенных Ссылок В Awk. 9.6. $Random: Генерация Псевдослучайных Целых Чисел. Пример 9-23. Генерация Случайных Чисел. Пример 9-24. Выбор Случайной Карты Из Колоды. Пример 9-25. Имитация Бросания Кубика С Помощью Random. Пример 9-26. Переустановка Random. Пример 9-27. Получение Псевдослучайных Чисел С Помощью Awk. 9.7. Двойные Круглые Скобки. Пример 9-28. Работа С Переменными В Стиле Языка C. Глава 10. Циклы И Ветвления. 10.1. Циклы. Пример 10-1. Простой Цикл For. Пример 10-2. Цикл For С Двумя Параметрами В Каждом Из Элементов Списка. Пример 10-3. Fileinfo: Обработка Списка Файлов, Находящегося В Переменной. Пример 10-4. Обработка Списка Файлов В Цикле For. Пример 10-5. Цикл For Без Списка Аргументов. Пример 10-6. Создание Списка Аргументов В Цикле For С Помощью Операции Подстановки Команд. Пример 10-7. Grep Для Бинарных Файлов. Пример 10-8. Список Всех Пользователей Системы. Пример 10-9. Проверка Авторства Всех Бинарных Файлов В Текущем Каталоге. Пример 10-10. Список Символических Ссылок В Каталоге. Пример 10-11. Список Символических Ссылок В Каталоге, Сохраняемый В Файле. Пример 10-12. C-Подобный Синтаксис Оператора Цикла For. Пример 10-13. Работа С Командой Efax В Пакетном Режиме. Пример 10-14. Простой Цикл While. Пример 10-15. Другой Пример Цикла While. Пример 10-16. Цикл While С Несколькими Условиями. Пример 10-17. C-Подобный Синтаксис Оформления Цикла While. Пример 10-18. Цикл Until. 10.2. Вложенные Циклы. Пример 10-19. Вложенный Цикл. 10.3. Управление Ходом Выполнения Цикла. Пример 10-20. Команды Break И Continue В Цикле. Пример 10-21. Прерывание Многоуровневых Циклов. Пример 10-22. Передача Управление В Начало Внешнего Цикла. Пример 10-23. Живой Пример Использования "Continue N". 10.4. Операторы Выбора. Пример 10-24. Использование Case. Пример 10-25. Создание Меню С Помощью Case. Пример 10-26. Оператор Case Допускает Использовать Подстановку Команд Вместо Анализируемой Переменной. Пример 10-27. Простой Пример Сравнения Строк. Пример 10-28. Проверка Ввода. Пример 10-29. Создание Меню С Помощью Select. Пример 10-30. Создание Меню С Помощью Select В Функции. Глава 11. Внутренние Команды. Пример 11-1. Printf В Действии. Пример 11-2. Ввод Значений Переменных С Помощью Read. Пример 11-3. Пример Использования Команды Read Без Указания Переменной Для Ввода. Пример 11-4. Ввод Многострочного Текста С Помощью Read. Пример 11-5. Обнаружение Нажатия На Курсорные Клавиши. Пример 11-6. Чтение Командой Read Из Файла Через Перенаправление. Пример 11-7. Смена Текущего Каталога. Пример 11-8. Команда Let, Арифметические Операции. Пример 11-9. Демонстрация Команды Eval. Пример 11-10. Принудительное Завершение Сеанса. Пример 11-11. Шифрование По Алгоритму "Rot13". Пример 11-12. Замена Имени Переменной На Ее Значение, В Исходном Тексте Программы На Языке Perl, С Помощью Eval. Пример 11-13. Установка Значений Аргументов С Помощью Команды Set. Пример 11-14. Изменение Значений Позиционных Параметров (Аргументов). Пример 11-15. "Сброс" Переменной. Пример 11-16. Передача Переменных Во Вложенный Сценарий Awk, С Помощью Export. Пример 11-17. Прием Опций/Аргументов, Передаваемых Сценарию, С Помощью Getopts. Пример 11-18. "Подключение" Внешнего Файла. Пример 11-19. Пример (Бесполезный) Сценария, Который Подключает Себя Самого. Пример 11-21. Сценарий, Который Запускает Себя Самого. 11.1. Команды Управления Заданиями. Пример 11-22. Ожидание Завершения Процесса Перед Тем Как Продолжить Работу. Пример 11-23. Сценарий, Завершающий Себя Сам С Помощью Команды Kill. Глава 12. Внешние Команды, Программы И Утилиты. 12.1. Базовые Команды. Пример 12-1. Создание Оглавления Диска Для Записи Cdr, С Помощью Команды Ls. 12.2. Более Сложные Команды. Пример 12-2. Badname, Удаление Файлов В Текущем Каталоге, Имена Которых Содержат Недопустимые Символы И Пробелы. Пример 12-3. Удаление Файла По Его Номеру Inode. Пример 12-4. Использование Команды Xargs Для Мониторинга Системного Журнала. Пример 12-5. Copydir, Копирование Файлов Из Текущего Каталога В Другое Место, С Помощью Xargs. Пример 12-6. Пример Работы С Expr. 12.3. Команды Для Работы С Датой И Временем. Пример 12-7. Команда Date. 12.4. Команды Обработки Текста. Пример 12-8. Частота Встречаемости Отдельных Слов. Пример 12-9. Какие Из Файлов Являются Сценариями? Пример 12-10. Генератор 10-Значных Случайных Чисел. Пример 12-11. Мониторинг Системного Журнала С Помощью Tail. Пример 12-12. Сценарий-Эмулятор "Grep". Пример 12-13. Поиск Слов В Словаре. Пример 12-14. Toupper: Преобразование Символов В Верхний Регистр. Пример 12-15. Lowercase: Изменение Имен Всех Файлов В Текущем Каталоге В Нижний Регистр. Пример 12-16. Du: Преобразование Текстового Файла Из Формата Dos В Формат Unix. Пример 12-17. Rot13: Сверхслабое Шифрование По Алгоритму Rot13. Пример 12-18. Более "Сложный" Шифр. Пример 12-20. Пример Форматирования Списка Файлов В Каталоге. Пример 12-21. Nl: Самонумерующийся Сценарий. 12.5. Команды Для Работы С Файлами И Архивами. Пример 12-23. Распаковка Архива Rpm. Пример 12-24. Удаление Комментариев Из Файла С Текстом Программы На Языке C. Пример 12-25. Исследование Каталога /Usr/X11R6/Bin. Пример 12-26. "Расширенная" Команда Strings. Пример 12-27. Пример Сравнения Двух Файлов С Помощью Cmp. Пример 12-28. Утилиты Basename И Dirname. Пример 12-29. Проверка Целостности Файла. Пример 12-30. Декодирование Файлов. 12.6. Команды Для Работы С Сетью. Пример 12-31. Сценарий, Отправляющий Себя Самого По Электронной Почте. 12.7. Команды Управления Терминалом. 12.8. Команды Выполнения Математических Операций. Пример 12-32. Ежемесячные Выплаты По Займу. Пример 12-33. Перевод Чисел Из Одной Системы Счисления В Другую. Пример 12-34. Пример Взаимодействия Bc Со "Встроенным Документом". Пример 12-35. Вычисление Числа "Пи". Пример 12-36. Преобразование Чисел Из Десятичной В Шестнадцатиричную Систему Счисления. Пример 12-37. Разложение Числа На Простые Множители. Пример 12-38. Расчет Гипотенузы Прямоугольного Треугольника. 12.9. Прочие Команды. Пример 12-39. Использование Seq Для Генерации Списка Аргументов Цикла For. Пример 12-40. Использование Getopt Для Разбора Аргументов Командной Строки. Пример 12-41. Захват Нажатых Клавиш. Пример 12-42. Надежное Удаление Файла. Пример 12-43. Генератор Имен Файлов. Пример 12-44. Преобразование Метров В Мили. Пример 12-45. Пример Работы С M4. Глава 13. Команды Системного Администрирования. Пример 13-1. Установка Символа "Забоя". Пример 13-2. Невидимый Пароль: Отключение Эхо-Вывода На Терминал. Пример 13-3. Пример 13-4. Использование Команды Pidof При Остановке Процесса. Пример 13-5. Проверка Образа CD. Пример 13-6. Создание Файловой Системы В Обычном Файле. Пример 13-7. Добавление Нового Жесткого Диска. Пример 13-8. Сценарий Killall, Из Каталога /Etc/Rc.D/Init.D. Глава 14. Подстановка Команд. Пример 14-1. Глупая Выходка. Пример 14-2. Запись Результатов Выполнения Цикла В Переменную. Глава 15. Арифметические Подстановки. Глава 16. Перенаправление Ввода/Вывода. 16.1. С Помощью Команды Exec. Пример 16-1. Перенаправление Stdin С Помощью Exec. Пример 16-2. Перенаправление Stdout С Помощью Exec. Пример 16-3. Одновременное Перенаправление Устройств, Stdin И Stdout, С Помощью Команды Exec. 16.2. Перенаправление Для Блоков Кода. Пример 16-4. Перенаправление В Цикл While. Пример 16-5. Альтернативная Форма Перенаправления В Цикле While. Пример 16-6. Перенаправление В Цикл Until. Пример 16-7. Перенаправление В Цикл For. Пример 16-8. Перенаправление Устройств (Stdin И Stdout) В Цикле For. Пример 16-9. Перенаправление В Конструкции If/Then. Пример 16-10. Файл С Именами "Names.Data", Для Примеров Выше. 16.3. Область Применения. Пример 16-11. Регистрация Событий. Глава 17. Встроенные Документы. Пример 17-1. Dummyfile: Создание 2-Х Строчного Файла-Заготовки. Пример 17-2. Broadcast: Передача Сообщения Всем, Работающим В Системе, Пользователям. Пример 17-3. Вывод Многострочных Сообщений С Помощью Cat. Пример 17-4. Вывод Многострочных Сообщений С Подавлением Символов Табуляции. Пример 17-5. Встроенные Документы И Подстановка Параметров. Пример 17-6. Отключение Подстановки Параметров. Пример 17-7. Передача Пары Файлов Во Входящий Каталог На "Sunsite". Пример 17-8. Встроенные Документы И Функции. Пример 17-9. "Анонимный" Встроенный Документ. Пример 17-10. Блочный Комментарий. Пример 17-11. Встроенная Справка К Сценарию. Часть 4. Материал Повышенной Сложности. Глава 18. Регулярные Выражения. 18.1. Краткое Введение В Регулярные Выражения. 18.2. Globbing -- Подстановка Имен Файлов. Глава 19. Подоболочки, Или Subshells. Пример 19-1. Область Видимости Переменных. Пример 19-2. Личные Настройки Пользователей. Пример 19-3. Запуск Нескольких Процессов В Подоболочках. Глава 20. Ограниченный Режим Командной Оболочки. Пример 20-1. Запуск Сценария В Ограниченном Режиме. Глава 21. Подстановка Процессов. Глава 22. Функции. Пример 22-1. Простая Функция. 22.1. Сложные Функции И Сложности С Функциями. Пример 22-2. Функция С Аргументами. Пример 22-3. Наибольшее Из Двух Чисел. Пример 22-4. Преобразование Чисел В Римскую Форму Записи. Пример 22-6. Сравнение Двух Больших Целых Чисел. Пример 22-7. Настоящее Имя Пользователя. 22.2. Локальные Переменные. Пример 22-8. Область Видимости Локальных Переменных. 22.2.1. Локальные Переменные Делают Возможной Рекурсию. Пример 22-9. Использование Локальных Переменных При Рекурсии. Глава 23. Псевдонимы. Пример 23-1. Псевдонимы В Сценарии. Пример 23-2. Unalias: Объявление И Удаление Псевдонимов. Глава 24. Списки Команд. Пример 24-1. Проверка Аргументов Командной Строки С Помощью "И-Списка". Пример 24-2. Еще Один Пример Проверки Аргументов С Помощью "И-Списков". Пример 24-3. Комбинирование "Или-Списков" И "И-Списков". Глава 25. Массивы. Пример 25-1. Простой Массив. Пример 25-2. Форматирование Стихотворения. Пример 25-3. Некоторые Специфичные Особенности Массивов. Пример 25-4. Пустые Массивы И Пустые Элементы. Пример 25-5. Копирование И Конкатенация Массивов. Пример 25-6. Старая, Добрая: "Пузырьковая" Сортировка. Пример 25-7. Вложенные Массивы И Косвенные Ссылки. Пример 25-8. Пример Реализации Алгоритма Решето Эратосфена. Пример 25-9. Эмуляция Структуры "Стек" ("Первый Вошел -- Последний Вышел"). Пример 25-10. Исследование Математических Последовательностей. Пример 25-11. Эмуляция Массива С Двумя Измерениями. Глава 26. Файлы. Глава 27. /Dev И /Proc. 27.1. /Dev. 27.2. /Proc. Пример 27-1. Поиск Файла Программы По Идентификатору Процесса. Пример 27-2. Проверка Состояния Соединения. Глава 28. /Dev/Zero И /Dev/Null. Пример 28-1. Удаление Cookie-Файлов. Пример 28-2. Создание Файла Подкачки (Swapfile), С Помощью /Dev/Zero. Пример 28-3. Создание Электронного Диска. Глава 29. Отладка Сценариев. Пример 29-1. Сценарий, Содержащий Ошибку. Пример 29-2. Пропущено Ключевое Слово. Пример 29-3. Test24. Пример 29-4. Проверка Условия С Помощью Функции "Assert". Пример 29-5. Ловушка На Выходе. Пример 29-6. Удаление Временного Файла При Нажатии На Control-C. Пример 29-7. Трассировка Переменной. Глава 30. Необязательные Параметры (Ключи). Глава 31. Широко Распространенные Ошибки. Пример 31-1. Западня В Подоболочке. Пример 31-2. Передача Вывода От Команды Echo Команде Read, По Конвейеру. Глава 32. Стиль Программирования. 32.1. Неофициальные Рекомендации По Оформлению Сценариев. Глава 33. Разное. 33.1. Интерактивный И Неинтерактивный Режим Работы. 33.2. Сценарии-Обертки. Пример 33-1. Сценарий-Обертка. Пример 33-2. Более Сложный Пример Сценария-Обертки. Пример 33-3. Сценарий-Обертка Вокруг Сценария Awk. Пример 33-4. Сценарий На Языке Perl, Встроенный В Bash-Скрипт. Пример 33-5. Комбинирование Сценария Bash И Perl В Одном Файле. 33.3. Операции Сравнения: Альтернативные Решения. 33.4. Рекурсия. Пример 33-6. Сценарий (Бесполезный), Который Вызывает Себя Сам. Пример 33-7. Сценарий Имеющий Практическую Ценность), Который Вызывает Себя Сам. 33.5. "Цветные" Сценарии. Пример 33-8. "Цветная" Адресная Книга. Пример 33-9. Вывод Цветного Текста. 33.6. Оптимизация. 33.7. Разные Советы. Пример 33-10. Необычный Способ Передачи Возвращаемого Значения. Пример 33-11. Необычный Способ Получения Нескольких Возвращаемых Значений. Пример 33-12. Передача Массива В Функцию И Возврат Массива Из Функции. Пример 33-13. Игры С Анаграммами. 33.8. Проблемы Безопасности. 33.9. Проблемы Переносимости. 33.10. Сценарии Командной Оболочки Под Windows. Глава 34. Bash, Версия 2. Пример 34-1. Расширение Строк. Пример 34-2. Косвенные Ссылки На Переменные -- Новый Метод. Пример 34-3. Простая База Данных, С Применением Косвенных Ссылок. Пример 34-4. Массивы И Другие Хитрости Для Раздачи Колоды Карт В Четыре Руки. Глава 35. Замечания И Дополнения. 35.1. От Автора. 35.2. Об Авторе. 35.3. Инструменты, Использовавшиеся При Создании Книги. 35.3.1. Аппаратура. 35.3.2. Программное Обеспечение. 35.4. Благодарности. Литература. Приложение A. Дополнительные Примеры Сценариев. Пример A-1. Manview: Просмотр Страниц Руководств Man. Пример A-2. Mailformat: Форматирование Электронных Писем. Пример A-3. Rn: Очень Простая Утилита Для Переименования Файлов. Пример A-4. Blank-Rename: Переименование Файлов, Чьи Имена Содержат Пробелы. Пример A-5. Encryptedpw: Передача Файла На Ftp-Сервер, С Использованием Пароля. Пример A-6. Copy-CD: Копирование Компакт-Дисков С Данными. Пример A-7. Последовательности Коллаца (Collatz). Пример A-8. Days-Between: Подсчет Числа Дней Между Двумя Датами. Пример A-9. Создание "Словаря". Пример A-10. Расчет Индекса "Созвучности". Пример A-11. "Игра "Жизнь"". Пример A-12. Файл С Первым Поколением Для Игры "Жизнь". Пример A-13. Behead: Удаление Заголовков Из Электронных Писем И Новостей. Пример A-14. Ftpget: Скачивание Файлов По Ftp. Пример A-15. Указание На Авторские Права. Пример A-16. Password: Генератор Случайного 8-Ми Символьного Пароля. Пример A-17. Fifo: Создание Резервных Копий С Помощью Именованных Каналов. Пример A-18. Генерация Простых Чисел, С Использованием Оператора Деления По Модулю (Остаток От Деления). Пример A-19. Tree: Вывод Дерева Каталогов. Пример A-20. Функции Для Работы Со Строками. Пример A-21. Directory Information. Пример A-22. Объектно Ориентированная База Данных. Приложение B. Маленький Учебник По Sed И Awk. B.1. Sed. B.2. Awk. Приложение C. Коды Завершения, Имеющие Предопределенный Смысл. Приложение D. Подробное Введение В Операции Ввода-Вывода И Перенаправление Ввода-Вывода. Приложение E. Локализация. Приложение F. История Команд. Приложение G. Пример Файла .Bashrc. Пример G-1. Пример Файла .Bashrc. Приложение H. Преобразование Пакетных (*.Bat) Файлов Dos В Сценарии Командной Оболочки. Пример H-1. Viewdata.Bat: Пакетный Файл Dos. Пример H-2. Viewdata.Sh: Результат Преобразования Viewdata.Bat В Сценарий Командной Оболочки. Приложение I. Упражнения. I.1. Анализ Сценариев. I.2. Создание Сценариев. Приложение J. Авторские Права. Примечания.
Язык программирования PHP.
Основы Синтаксиса. Управляющие Конструкции. Обработка Запросов С Помощью Php. Функции В Php. Объекты И Классы В Php. Работа С Массивами Данных. Работа Со Строками. Работа С Файловой Системой. Базы Данных И Субд. Введение В Sql. Взаимодействие Php И Mysql. Авторизация Доступа С Помощью Сессий. Регулярные Выражения. Взаимодействие Php И XML. Использование Шаблонов В Php. Литература. Программное Обеспечение. История Php Язык Php Был Разработан Как Инструмент Для Решения Чисто Практических Задач. Его Создатель, …Расмус Лердорф, Хотел Знать, Сколько Человек Читают Его Online-Резюме, И Написал Для Этого Простенькую Cgi-Оболочку На Языке Perl, Т.Е. Это Был Набор Perl-Скриптов, Предназначенных Исключительно Для Определенной Цели – Сбора Статистики Посещений.
С++. Универсальный язык программирования.
Эффективность И Структура. Философские Замечания. Размышления О Программировании На С++ Правила Правой Руки* Замечания Для Программистов На C. Библиографические Ссылки. Глава 1 Турне По С++ 1.1 Введение. 1.1.1 Вывод. 1.1.2 Компиляция. 1.1.3 Ввод. 1.2 Комментарии. 1.3 Типы И Описания. 1.3.1 Основные Типы. 1.3.2 Производные Типы. 1.4 Выражения И Операторы. 1.4.2 Операторы Выражения. 1.4.5 Оператор If. 1.4.6 Операторы Switch. 1.4.7 Оператор While. 1.4.8 Оператор For. 1.4.9 Описания. 1.5 Функции. 1.6 Структура Программы.… 1.7 Классы. 1.8 Перегрузка Операций. 1.9 Ссылки. 1.10 Конструкторы. 1.11 Вектора. 1.13 Производные Классы. 1.14 Еще Об Операциях. 1.15 Друзья (Friend). 1.17 Полиморфные Вектора. 1.18 Виртуальные Функции. Глава 2 Описания И Константы. 2.1 Описания. 2.1.1 Область Видимости. 2.1.2 Объекты И Адреса (Lvalue). 2.1.3 Время Жизни. 2.2 Имена. 2.3 Типы. 2.3.1 Основные Типы. 2.3.2 Неявное Преобразование Типа. 2.3.3 Производные Типы. 2.3.4 Тип Void. 2.3.5 Указатели. 2.3.6 Вектора. 2.3.7 Указатели И Вектора. 2.3.8 Структуры. 2.3.9 Эквивалентность Типов. 2.3.10 Ссылки. 2.3.11 Регистры. 2.4 Константы. 2.4.1 Целые Константы. 2.4.2 Константы С Плавающей Точкой. 2.4.3 Символьные Константы. 2.4.4 Строки. 2.4.5 Ноль. 2.4.6 Const. 2.4.7 Перечисления. 2.5 Экономия Пространства. 2.5.1 Поля. 2.5.2 Объединения. 2.6 Упражнения. Глава 3 Выражения И Операторы. 3.1 Настольный Калькулятор. 3.1.1 Программа Синтаксического Разбора. 3.1.2 Функция Ввода. 3.1.3 Таблица Имен. 3.1.4 Обработка Ошибок. 3.1.5 Драйвер. 3.1.6 Параметры Командной Строки. 3.2 Краткая Сводка Операций. 3.2.1 Круглые Скобки. 3.2.2 Порядок Вычисления. 3.2.3 Увеличение И Уменьшение* 3.2.4 Побитовые Логические Операции. 3.2.5 Преобразование Типа. 3.3 Сводка Операторов. 3.3.1 Проверки. 3.3.2 Goto. 3.4 Комментарии И Выравнивание. 3.5 Упражнения. Глава 4 Функции И Файлы. 4.1 Введение. 4.2 Компоновка. 4.3 Заголовочные Файлы. 4.3.1 Один Заголовочный Файл. 4.3.2 Множественные Заголовочные Файлы. 4.3.3 Сокрытие Данных. 4.4 Файлы Как Модули. 4.5 Как Создать Библиотеку. 4.6 Функции. 4.6.1 Описания Функций. 4.6.2 Определения Функций. 4.6.3 Передача Параметров. 4.6.4 Возврат Значения. 4.6.5 Векторные Параметры. 4.6.6 Параметры По Умолчанию. 4.6.7 Перегрузка Имен Функций. 4.6.8 Незаданное Число Параметров. 5.3.2 Законченный Класс. 5.4 Друзья И Объединения. 5.4.2 Уточнение* Имени Члена. 5.4.3 Вложенные Классы. 5.4.4 Статические Члены. 5.4.5 Указатели На Члены. 5.4.6 Структуры И Объединения. 5.1 Знакомство И Краткий Обзор. 5.2 Классы И Члены. 5.2.1 Функции Члены. 5.2.2 Классы. 5.2.3 Ссылки На Себя. 5.2.4 Инициализация. 5.2.5 Очистка. 5.2.6 Inline. 5.3 Интерфейсы И Реализации. 5.3.1 Альтернативные Реализации. 5.3.2 Законченный Класс. 5.4 Друзья И Объединения. 5.4.1 Друзья. 5.4.2 Уточнение* Имени Члена. 5.4.3 Вложенные Классы. 5.4.4 Статические Члены. 5.4.5 Указатели На Члены. 5.4.6 Структуры И Объединения. 5.5 Конструкторы И Деструкторы. 5.5.1 Предостережение. 5.5.2 Статическая Память. 5.5.3 Свободная Память. 5.5.4 Объекты Класса Как Члены. 5.5.5 Вектора Объектов Класса. 5.5.6 Небольшие Объекты. 5.5.7 Предостережение. 5.5.8 Объекты Переменного Размера. 5.6 Упражнения. Глава 6 Перегрузка Операций. 6.1 Введение. 6.2 Функции Операции. 6.2.1 Бинарные И Унарные Операции. 6.2.2 Предопределенный Смысл Операций. 6.2.3 Операции И Определяемые Пользователем Типы. 6.3 Определяемое Пользователем Преобразование Типа. 6.3.1 Конструкторы. 6.3.2 Операции Преобразования. 6.3.3 Неоднозначности. 6.4 Константы. 6.5 Большие Объекты. 6.6 Присваивание И Инициализация. 6.7 Индексирование. 6.8 Вызов Функции. 6.9 Класс String. 6.10 Друзья И Члены. 6.11 Предостережение. 6.12 Упражнения. Глава 7 Производные Классы. 7.1 Введение. 7.2 Производные Классы. 7.2.1 Построение Производного Класса. 7.2.2 Функции Члены. 7.2.3 Видимость. 7.2.4 Указатели. 7.2.5 Иерархия Типов. 7.2.6 Конструкторы И Деструкторы. 7.2.7 Поля Типа. 7.2.8 Виртуальные Функции. 7.3 Альтернативные Интерфейсы. 7.3.1 Интерфейс. 7.3.2 Реализация. 7.3.3 Как Этим Пользоваться. 7.3.4 Обработка Ошибок. 7.3.5 Обобщенные Классы. 7.3.6 Ограниченные Интерфейсы. 7.4 Добавление К Классу. 7.5 Неоднородные Списки. 7.6 Законченная Программа. 7.6.1 Администратор Экрана. 7.6.2 Библиотека Фигур. 7.6.3 Прикладная Программа. 7.7 Свободная Память. 7.8 Упражнения. Глава 8 Потоки. 8.1 Введение. 8.2 Вывод. 8.2.1 Вывод Встроенных Типов. 8.2.2 Вывод Определяемых Пользователем Типов. 8.2.3 Некоторые Подробности Разработки. 8.2.4 Форматированный Вывод. 8.2.5 Виртуальная Функция Вывода. 8.3 Файлы И Потоки. 8.3.1 Инициализация Потоков Вывода. 8.3.2 Закрытие Потоков Вывода. 8.3.3 Открытие Файлов. 8.3.4 Копирование Потоков. 8.4 Ввод. 8.4.1 Ввод Встроенных Типов. 8.4.2 Состояния Потока. 8.4.3 Ввод Типов, Определяемых Пользователем. 8.4.4 Инициализация Потоков Ввода. 8.5 Работа Со Строками. 8.6 Буферизация. 8.7 Эффективность. 8.8 Упражнения. Справочное Руководство. 1. Введение. 2. Договоренности О Лексике. 2.1 Комментарии. 2.2 Идентификаторы (Имена). 2.3 Ключевые Слова. 2.4 Константы. 2.4.1 Целые Константы. 2.4.2 Явно Заданные Длинные Константы. 2.4.3 Символьные Константы. 2.4.4 Константы С Плавающей Точкой. 2.4.5 Перечислимые Константы. 2.4.6 Описанные Константы. 2.5 Строки. 2.6 Харктеристики Аппаратного Обеспечения. 3. Запись Синтаксиса. 4. Имена И Типы. 4.1 Область Видимости. 4.2 Определения. 4.3 Компоновка. 4.4 Классы Памяти. 4.5 Основные Типы. 4.4 Производные Типы. 6.1 Символы И Целые. 6.2 Float И Double. 6.3 Плавающие И Целые. 6.4 Указатели И Целые. 6.5 Unsigned. 6.6 Арифметические Преобразования. 6.7 Преобразования Указателей. 6.8 Преобразования Ссылок. 7. Выражения. 7.1 Основные Выражения. 7.2 Унарные Операции. 7.2.1 Увеличение И Уменьшение. 7.2.2 Sizeof. 7.2.3 Явное Преобразование Типа. 7.2.4 Свободная Память. 7.3 Мультипликативные Операции. 7.4 Аддитивные Операции. 7.5 Операции Сдвига. 7.6 Операции Отношения. 7.7 Операции Равенства. 7.8 Операция Побитовое И. 7.9 Операция Побитовое Исключающее Или. 7.10 Операция Побитовое Включающее Или. 7.11 Операция Логическое И. 7.12 Операция Логическое Или. 7.13 Условная Операция. 7.14 Операции Присваивания. 7.15 Операция Запятая. 7.16 Перегруженные Операции. 7.16.1 Унарные Операции. 7.16.2 Бинарные Операции. 7.16.3 Особые Операции. 8. Описания. 8.1 Спецификаторы Класса Памяти. 8.2 Спецификаторы Типа. 8.3 Описатели. 8.4 Смысл Описателей. 8.4.1 Примеры. 8.4.2 Массивы, Указатели И Индексирование. 8.5 Описания Классов. 8.5.1 Статические Члены. 8.5.2 Функции Члены. 8.5.3 Производные Классы. 8.5.4 Виртуальные Функции. 8.5.5 Конструкторы. 8.5.6 Преобразования. 8.5.7 Деструкторы. 8.5.8 Свободная Память. 8.5.9 Видимость Имен Членов. 8.5.11 Функция Операция. 8.5.13 Объединения. 8.5.14 Поля Бит. 8.5.15 Вложенные Классы. 8.6 Инициализация. 8.6.1 Список Инициализаторов. 8.6.2 Объекты Классов. 8.6.3 Ссылки. 8.6.4 Массивы Символов. 8.7 Имена Типов. 8.8 Typedef – Определение Типа. 8.9 Перегруженные Имена Функций. 8.10 Описания Перечислений. 8.11 Описание Asm. 9.1 Оператор Выражение. 9.2 Составной Оператор, Или Блок. 9.3 Условный Оператор. 9.4 Оператор While. 9.5 Оператор Do. 9.6 Оператор For. 9.7 Оператор Switch. 9.8 Оператор Break. 9.9 Оператор Continue. 9.10 Оператор Return. 9.11 Оператор Goto. 9.12 Помеченные Операторы. 9.13 Пустой Оператор. 9.14 Оператор Описание. 11. Командные Строки Компилятора. 11.1 Замена Лексем. 11.2 Включение Файлов. 11.3 Условная Компиляция. 11.4 Управление Строкой. 12. Константные Выражения. 14.1 Выражения. 14.2 Описания. 14.3 Операторы. 14.4 Внешние Определения. 14.5 Препроцессор. 15. Отличия От C. 15.1 Расширения. 15.2 Сводка Несовместимостей. 15.3 Анахронизмы. Благодарности. Заметки Для Читателя. Структура Этой Книги. Замечания По Реализации. Упражнения. Замечания По Проекту Языка.
Язык программирования Python.
Что Такое Python? Как Описать Язык? История Языка Python. Программа На Python. Примечание: Основные Алгоритмические Конструкции. Последовательность Операторов. Оператор Условия И Выбора. Циклы. Примечание: Функции. Исключения. Примечание: Встроенные Типы Данных. Тип Int И Long. Тип Float. Примечание: Тип Complex. Тип Bool. Тип String И Тип Unicode. Тип Tuple. Тип List. Последовательности. Некоторые Методы Для Работы С Последовательностями. Взятие Элемента По Индексу И Срезы. Примечание: Тип Dict. Тип File. Выражения.… Имена. Стиль Программирования. Заключение. Лекция #2: Основные Стандартные Модули Python. Понятие Модуля. Модули В Python. Встроенные Функции. Совет: Функции Преобразования Типов И Классы. Числовые И Строковые Функции. Функции Обработки Данных. Функции Определения Свойств. Функции Для Доступа К Внутренним Структурам. Функции Компиляции И Исполнения. Функции Ввода–Вывода. Функции Для Работы С Атрибутами. Функции — «Украшатели» Методов Классов. Обзор Стандартной Библиотеки. Примечание: Сервисы Периода Выполнения. Модуль Sys. Модуль Copy. Модули Math И Cmath. Модуль Random. Модуль Time. Модуль Sets. Модули Array И Struct. Модуль Itertools. Модуль Locale. Модуль Gettext. Поддержка Цикла Разработки. Модуль Pdb. Модуль Profile. Примечание: Модуль Unittest. Модуль Pydoc. Пакет Docutils. Пакет Distutils. Взаимодействие С Операционной Системой. Модуль Os. Модуль Stat. Модуль Tempfile. Обработка Текстов. Многопоточные Вычисления. Хранение Данных. Архивация. Модуль Pickle. Модуль Shelve. Модули Anydbm И Gdbm. Модуль Csv. Платформо–Зависимые Модули. Поддержка Сети. Протоколы Интернет. Поддержка Internet. Форматы Данных. Python О Себе. Графический Интерфейс. Заключение. Лекция #3: Элементы Функционального Программирования. Что Такое Функциональное Программирование? Функциональная Программа. Функция: Определение И Вызов. Примечание: Рекурсия. Функции Как Параметры И Результат. Функция Apply(). Обработка Последовательностей. Функции Range() И Xrange(). Функция Map(). Функция Filter(). Списковые Включения. Функция Sum(). Функция Reduce(). Совет: Функция Zip(). Итераторы. Функция Iter(). Примечание: Функция Enumerate(). Функция Sorted(). Функция Itertools.Chain(). Функция Itertools.Repeat(). Функция Itertools.Count(). Функция Itertools.Cycle(). Функции Itertools.Imap(), Itertools.Starmap() И Itertools.Ifilter(). Функции Itertools.Takewhile() И Itertools.Dropwhile(). Функция Itertools.Izip(). Функция Itertools.Groupby(). Функция Itertools.Tee(). Собственный Итератор. Простые Генераторы. Генераторное Выражение. Карринг. Заключение. Ссылки По Теме. Лекция #4: Объектно–Ориентированное Программирование. Примечание: Примечание: Основные Понятия. Абстракция И Декомпозиция. Объекты. Типы И Классы. Примечание: Определение Класса. Инкапсуляция. Доступ К Свойствам. Сокрытие Данных. Полиморфизм. Имитация Типов. Отношения Между Классами. Наследование. Множественное Наследование. Порядок Разрешения Методов. Агрегация. Контейнеры. Примечание: Итераторы. Ассоциация. Слабые Ссылки. Статический Метод. Метод Класса. Метаклассы. Примечание: Мультиметоды. Устойчивые Объекты. Примечание: Критика Ооп. Заключение. Ссылки. Лекция #5: Численные Алгоритмы. Матричные Вычисления. Модуль Numeric. Создание Массива. Методы Массивов. Срезы. Универсальные Функции. Предупреждение: Функции Модуля Numeric. Примечание: Функции Для Работы С Массивами. Функция Numeric.Take(). Функции Numeric.Diagonal() И Numeric.Trace(). Функция Numeric.Choose(). Свод Функций Модуля Numeric. Модуль Linearalgebra. Модуль Randomarray. Заключение. Ссылки. Лекция #6: Обработка Текстов. Регулярные Выражения. Unicode. Строки. Примечание: Кодировка Python–Программы. Строковые Литералы. Примечание: Операции Над Строками. Операция Форматирования. Индексы И Срезы. Примечание: Модуль String. Методы Строк. Рекомендации По Эффективности. Модуль Stringio. Модуль Difflib. Регулярные Выражения. Примечание: Синтаксис Регулярного Выражения. Методы Объекта–Шаблона. Примеры Шаблонов. Отладка Регулярных Выражений. Примеры Применения Регулярного Выражения. Обработка Лога. Анализ Записи Числа. Множественная Замена. Работа С Несколькими Файлами. Работа С Unicode. Заключение. Ссылки. Лекция #7: Работа С Данными В Различных Форматах. Формат Csv. Пакет Email. Разбор Сообщения. Класс Message. Формирование Сообщения. Разбор Поля Заголовка. Язык XML. Примечание: Формирование XML–Документа. Анализ XML–Документа. Пространства Имен. Примечание: Заключение. Лекция #8: Разработка Web–Приложений. Cgi-Сценарии. Модуль Cgi. Осторожно! Что После Cgi? Среды Разработки. Zope И Его Объектная Модель. Примечание: Заключение. Лекция #9: Сетевые Приложения На Python. Работа С Сокетами. Примечание: Модуль Smtplib. Модуль Poplib. Примечание: Модули Для Клиента Www. Функции Для Загрузки Сетевых Объектов. Функции Для Анализа Url. Возможности Urllib2. Примечание: XML–Rpc Сервер. Внимание! Заключение. Лекция #10: Работа С Базой Данных. Основные Понятия Реляционной Субд. Что Такое Db-Api 2. Описание Db Api 2.0. Интерфейс Модуля. Объект–Соединение. Объект–Курсор. Объекты–Типы. Работа С Базой Данных Из Python–Приложения. Знакомство С Субд. Создание Базы Данных. Наполнение Базы Данных. Примечание: Выборки Из Базы Данных. Другие Субд И Python. Примечание: Заключение. Ссылки. Лекция #11: Многопоточные Вычисления. О Потоках Управления. Пример Многопоточной Программы. Функции Модуля Threading. Класс Thread. Таймер. Замки. Когда Нужны Замки? Тупиковая Ситуация (Deadlock). Семафоры. События. Условия. Очередь. Модуль Thread. Визуализация Работы Потоков. Примечание: Заключение. Лекция #12: Создание Приложений С Графическим Интерфейсом Пользователя. Обзор Графических Библиотек. О Графическом Интерфейсе. Основы Tk. Классы Виджетов. События. Примечание: Создание И Конфигурирование Виджета. Примечание: Виджет Форматированного Текста. Менеджеры Расположения. Изображения В Tkinter. Графическое Приложение На Tkinter. Примечание: Заключение. Ссылки. Лекция #13: Интеграция Python С Другими Языками Программирования. C Api. Примечание. Написание Модуля Расширения. Пример Встраивания Интерпретатора В Программу На C. Использование Swig. Простой Пример Использования Swig. Интеграция Python И Других Систем Программирования. Java. Prolog. Ocaml. Pyrex. Заключение. Ссылки. 14. Лекция: Устройство Интерпретатора Языка Python. Лексический Анализ. Синтаксический Анализ. Получение Байт-Кода. Изучение Байт-Кода. Отладка. Профайлер. Модуль Profile. Модуль Timeit. Оптимизация. Pychecker. Исследование Объекта. Модуль Inspect. Заключение.
Экстремальное программирование.
Данная Книга. Что Такое Хр? Достаточность. План Книги. Благодарности. Часть 1. Проблема. Глава 1. Риск: Основная Проблема. Наша Цель. Глава 2. Эпизод Из Программистской Практики. Глава 3. Экономика Разработки Программного Обеспечения. Варианты. Пример. Глава 4. Четыре Переменные. Взаимосвязь Между Переменными. Фокус На Объеме Работ. Глава 5. Стоимость Внесения Изменений. Глава 6. Обучение Управлению Автомобилем. Глава 7. Четыре Ценности. Коммуникация. Простота. Обратная Связь. Храбрость. Ценности На Практике.… Глава 8. Базовые Принципы. Глава 9. Обратно К Истокам. Кодирование. Тестирование. Слушание. Проектирование. Заключение. Часть 2. Решение. Глава 10. Краткий Обзор. Игра В Планирование. Небольшие Версии. Метафора. Простой Дизайн. Тестирование. Переработка. Программирование Парами. Коллективное Владение. Постоянно Продолжающаяся Интеграция. 40-Часовая Рабочая Неделя. Заказчик На Месте Разработки. Стандарты Кодирования. Глава 11. Как Это Работает? Игра В Планирование. Небольшие Версии. Метафора. Простой Дизайн. Программирование В Парах. Коллективное Владение. Постоянно Продолжающаяся Интеграция. 40-Часовая Рабочая Неделя. Заказчик На Месте Разработки. Стандарты Кодирования. Заключение. Глава 12. Стратегия Менеджмента. Метрики. Инструктирование. Слежение. Интервенция. Глава 13. Стратегия Организации Рабочего Места. Глава 14. Разделение Полномочий Между Технарями И Бизнесменами. Бизнес. Разработчики. Что Делать? Выбор Технологии. Что Если Это Сложно? Глава 15. Стратегия Планирования. Игра В Планирование. Цель. Стратегия. Куски. Игроки. Ходы. Фаза Исследования. Фаза Подтверждения. Фаза Управления. Итерационное Планирование. Фаза Подтверждения. Фаза Управления. Планирование За Неделю. Глава 16. Стратегия Разработки. Постоянная Интеграция. Коллективное Владение. Программирование Парами. Глава 17. Стратегия Проектирования. Самая Простая Вещь, Которая, Возможно, Сработает. Как Работает Проектирование При Помощи Переработки? Что Является Самым Простым? Как Это Может Работать? Роль Рисунков В Дизайне. Системная Архитектура. Глава 18. Стратегия Тестирования. Кто Пишет Тесты? Другие Тесты. Часть 3. Реализация Хр. Глава 19. Внедрение Хр. Глава 20. Адаптация Хр Для Существующего Проекта. Тестирование. Проектирование. Планирование. Менеджмент. Разработка. Проблемы? Глава 21. Жизненный Цикл Идеального Хр-Проекта. Исследование. Планирование. Итерации В Первой Версии. Внедрение В Эксплуатацию. Обслуживание И Поддержка. Смерть. Глава 22. Роли Для Людей. Программист. Заказчик. Тестер. Ревизор. Инструктор. Консультант. Большой Босс. Глава 23. Правило 20 На 80. Глава 24. Что Делает Хр Сложной? Глава 25. Когда Не Следует Использовать Хр. Глава 26. Хр В Работе. Фиксированная Цена. Разработка Чужими Силами. Разработка Своими Силами. Время И Материалы. Премия За Завершение. Раннее Закрытие Проекта. Программные Инфраструктуры. Продукты Широкого Использования. Заключение. Ожидание. Словарь Терминов. Примечания.
Основы объектно-ориентированного программирования.
Внешние И Внутренние Факторы. Обзор Внешних Факторов. Корректность (Correctness). Устойчивость (Robustness). Расширяемость (Extendibility). Повторное Использование (Reusability). Совместимость (Compatibility). Эффективность (Efficiency). Переносимость (Portability). Простота Использования (Easy Of Use). Функциональность (Functionality). Своевременность (Timeliness). Другие Качества. О Документации. Компромиссы. Ключевые Вопросы. О Программном Сопровождении. Ключевые Концепции. Лекция 2. Критерии Объектной Ориентации.… О Критериях. До Какой Степени Мы Должны Быть Догматичными? Категории. Метод И Язык. Бесшовность (Seamlessness). Классы. Утверждения (Assertions). Классы Как Модули. Классы Как Типы. Вычисления, Основанные На Компонентах. Скрытие Информации (Information Hiding). Обработка Исключений (Exception Handling). Статическая Типизация (Static Typing). Универсальность (Genericity). Единичное Наследование (Single Inheritance). Множественное Наследование (Multiple Inheritance). Дублируемое Наследование (Repeated Inheritance). Ограниченная Универсальность (Constrained Genericity). Переопределение (Redefinition). Полиморфизм. Динамическое Связывание. Выяснение Типа Объекта В Период Выполнения. Отложенные (Deferred) Свойства И Классы. Управление Памятью (Memory Management) И Сборка Мусора (Garbage Collection). Реализация И Среда. Автоматическое Обновление (Automatic Update). Быстрое Обновление (Fast Update). Живучесть (Persistence). Документация. Быстрый Просмотр (Browsing). Библиотеки. Базовые Библиотеки. Графика И Пользовательские Интерфейсы. Механизмы Эволюции Библиотек. Механизмы Индексации В Библиотеках. Продолжение Просмотра. Библиографические Ссылки И Объектные Ресурсы. Лекция 3. Модульность. Пять Критериев. Декомпозиция. Модульная Композиция. Модульная Понятность. Модульная Непрерывность. Модульная Защищенность. Пять Правил. Прямое Отображение. Минимум Интерфейсов. Слабая Связность Интерфейсов. Явные Интерфейсы. Скрытие Информации. Пять Принципов. Лингвистические Модульные Единицы. Самодокументирование. Унифицированный Доступ. Открыт-Закрыт. Единственный Выбор. Ключевые Концепции. Библиографические Замечания. Упражнения. Уз.1 Модульность В Языках Программирования. Уз.2 Принцип Открыт-Закрыт (Для Программистов Lisp). Уз.3 Ограничения На Скрытие Информации. Уз.4 Метрики Для Модульности (Отчетная Исследовательская Работа). Уз.5 Модульность Существующих Систем. Уз.6 Управление Конфигурацией И Наследование. Лекция 4. Подходы К Повторному Использованию. Цели Повторного Использования. Ожидаемые Преимущества. Потребители И Производители Повторно Используемых Программ. Что Следует Повторно Использовать? Повторное Использование Персонала. Повторное Использование Проектов И Спецификаций. Образцы Проектов (Design Patterns). Повторное Использование Исходного Текста. Повторное Использование Абстрактных Модулей. Повторяемость При Разработке По. Нетехнические Препятствия. Синдром Nih. Фирмы По Разработке По И Их Стратегии. Организация Доступа К Компонентам. Несколько Слов Об Индексировании Компонентов. Форматы Для Распространения Повторно Используемых Компонентов. Оценка. Техническая Проблема. Изменения И Постоянство. Повторно Использовать Или Переделать? (The Reuse-Redo Dilemma). Пять Требований К Модульным Структурам. Изменчивость Типов (Type Variation). Группирование Подпрограмм (Routine Grouping). Изменчивость Реализаций (Implementation Variation). Независимость Представлений. Факторизация Общего Поведения. Традиционные Модульные Структуры. Подпрограммы. Пакеты. Пакеты: Оценка. Перегрузка И Универсальность. Синтаксическая Перегрузка. Семантическая Перегрузка (Предварительное Представление). Универсальность (Genericity). Основные Методы Модульности: Оценка. Ключевые Концепции. Библиографические Замечания. Лекция 5. К Объектной Технологии. Ингредиенты Вычисления. Базисный Треугольник. Функциональная Декомпозиция. Непрерывность. Проектирование Сверху Вниз. Не Только Одна Главная Функция. Обнаружение Вершины. Функции И Эволюция. Интерфейсы И Проектирование По. Преждевременное Упорядочение. Упорядочивание И Оо-Разработка. Возможность Повторного Использования. Производство И Описание. Проектирование Сверху Вниз: Общая Оценка. Декомпозиция, Основанная На Объектах. Расширяемость. Возможность Повторного Использования. Совместимость. Объектно-Ориентированное Конструирование По. Вопросы. Выявление Типов Объектов. Описания Типов И Объектов. Описание Отношений И Структурирование По. Ключевые Концепции. Библиографические Замечания. Лекция 6. Абстрактные Типы Данных (Атд). Критерии. Различные Реализации. Представления Стеков. Опасность Излишней Спецификации. Какова Длина Второго Имени? К Абстрактному Взгляду На Объекты. Использование Операций. Политика Невмешательства В Обществе Модулей. Согласованность Имен. Можно Ли Обойтись Без Абстракций? Формализация Спецификаций. Специфицирование Типов. Универсализация (Genericity). Перечисление Функций. Категории Функций. Раздел Аксиомы. Две Или Три Вещи, Которые Мы Знаем О Стеках. Частичные Функции. Предусловия. Полная Спецификация. Ничего Кроме Правды. От Абстрактных Типов Данных К Классам. Классы. Как Создавать Эффективный Класс. Роль Отложенных Классов. Абстрактные Типы Данных И Скрытие Информации. Переход К Более Императивной Точке Зрения. Назад К Тому, С Чего Начали? Конструирование Объектно-Ориентированного По. За Пределами Программ. Дополнительные Темы. Еще Раз О Неявности. Соотношение Спецификации И Проектирования. Соотношение Классов И Записей. Альтернативы Частичным Функциям. Полна Ли Моя Спецификация? Доказательство Достаточной Полноты. Ключевые Концепции. Библиографические Замечания. Упражнения. У6.1 Точки. У6.2 Боксеры. У6.3 Банковские Счета. У6.4 Сообщения. У6.5 Имена. У6.6 Текст. У6.7 Покупка Дома. У6.8 Дополнительные Операции Для Стеков. У6.9 Ограниченные Стеки. У6.10 Очереди. У6.11 Распределители. У6.12 Булевский -- Boolean. У6.13 Достаточная Полнота. У6.14 Непротиворечивость. Лекция 7. Статические Структуры: Классы. Классы, А Не Объекты - Предмет Обсуждения. Устранение Традиционной Путаницы. Роль Классов. Модули И Типы. Класс Как Модуль И Как Тип. Унифицированная Система Типов. Простой Класс. Компоненты. Атрибуты И Подпрограммы. Унифицированный Доступ. Класс Point. Основные Соглашения. Распознавание Вида Компонент. Тело Подпрограммы И Комментарии К Заголовку. Предложение Indexing. Обозначение Результата Функции. Правила Стиля. Наследование Функциональных Возможностей Общего Характера. Объектно-Ориентированный Стиль Вычислений. Текущий Экземпляр. Клиенты И Поставщики. Вызов Компонента. Принцип Единственности Цели. Слияние Понятий Модуль И Тип. Роль Объекта Current. Квалифицированные И Неквалифицированные Вызовы. Компоненты-Операции. Селективный Экспорт И Скрытие Информации. Неограниченный Доступ. Ограничение Доступа Клиентам. Стиль Объявления Скрытых Компонент. "Внутренний" Экспорт. Собираем Все Вместе. Общая Относительность. Большой Взрыв. Системы. Программа Main Отсутствует. Компоновка Системы. Классическое "Hello". Структура И Порядок: Программист В Роли Поджигателя. Обсуждение. Форма Объявлений. Атрибуты Или Функции? Экспорт Атрибутов. Доступ Клиентов К Атрибутам. Оптимизация Вызовов. Архитектурная Роль Селективного Экспорта. Импорт Листингов. Присваивание Функции Результата. Дополнение: Точное Определение Сущности. Ключевые Концепции. Библиографические Замечания. Упражнения. У7.1 Point Как Абстрактный Тип Данных. У7.2 Завершение Реализации Point. У7.3 Полярные Координаты. Лекция 8. Динамические Структуры: Объекты. Объекты. Что Такое Объект? Базовая Форма. Простые Поля. Простое Представление Книги - Класс Book. Писатели. Ссылки. Идентичность Объектов. Объявление Ссылок. Ссылка На Себя. Взгляд На Структуру Объектов Периода Выполнения. Объекты Как Средство Моделирования. Четыре Мира Программной Разработки. Реальность: "Седьмая Вода На Киселе". Работа С Объектами И Ссылками. Динамическое Создание И Повторное Связывание. Инструкция Создания. Общая Картина. Для Чего Необходимо Явное Создание Объектов? Процедуры Создания. Перекрытие Инициализации По Умолчанию. Статус Экспорта Процедур Создания. Правила, Применимые К Процедурам Создания. Процедуры Создания И Перегрузка. Еще О Ссылках. Состояния Ссылок. Вызовы И Пустые Ссылки. Операции Над Ссылками. Присоединение Ссылки К Объекту. Сравнение Ссылок. Значение Void. Клонирование И Сравнение Объектов. Копирование Объектов. Глубокое Клонирование И Сравнение. Глубокое Хранилище: Первый Взгляд На Сохраняемость. Составные Объекты И Развернутые Типы. Ссылок Не Достаточно. Развернутые Типы. Роль Развернутых Типов. Агрегирование. Свойства Развернутых Типов. Недопустимость Ссылок На Подобъекты. Присоединение: Две Семантики - Ссылок И Значений. Присоединение. Присоединение: Ссылочное И Копии. Гибридное Присоединение. Проверка Эквивалентности. Работа Со Ссылками: Преимущества И Опасности. Динамические Псевдонимы. Семантика Использования Псевдонимов. Выработка Соглашений Для Динамических Псевдонимов. Псевдонимы В По И За Его Пределами. Инкапсуляция Действий Со Ссылками. Обсуждение. Графические Соглашения. Ссылки И Простые Значения. Форма Операций Клонирования И Эквивалентности. Статус Универсальных Операций. Ключевые Концепции. Библиографические Замечания. Упражнения. У8.1 Книги И Авторы. У8.2 Личности. У8.3 Проектирование Нотации. Лекция 9. Управление Памятью. Что Происходит С Объектами. Создание Объектов. Использование Динамического Режима. Повторное Использование Памяти В Трех Режимах. Отсоединение. Недостижимые Объекты. Достижимые Объекты В Классическом Подходе. Достижимые Объекты В Оо-Модели. Проблема Управления Памятью В Оо-Модели. Три Ответа. Несерьезный Подход (Тривиальный). Может Ли Быть Оправдан Несерьезный Подход? Надо Ли Заботиться О Памяти? Байт Здесь, Байт Там, И Реальные Покойники. Восстановление Памяти: Проблемы. Удаление Объектов, Управляемое Программистом. Проблема Надежности. Проблема Простоты Разработки. Подход На Уровне Компонентов. Управление Памятью Связного Списка. Работа С Утилизированными Объектами. Дискуссия. Автоматическое Управление Памятью. Необходимость Автоматических Методов. Что В Точности Понимается Под Восстановлением? Подсчет Ссылок. Сборка Мусора. Механизм Сборки Мусора. Основа Сборки Мусора. Сборка По Принципу "Все-Или-Ничего". Продвинутый (Advanced) Подход К Сборке Мусора. Алгоритмы Параллельной Сборки Мусора. Практические Проблемы Сборки Мусора. Класс Memory. Механизм Освобождения. Сборка Мусора И Внешние Вызовы. Среда С Управлением Памятью. Основы. Сложные Проблемы. Перемещение Объектов. Механизм Сборки Мусора. Повышенное Чувство Голода И Потеря Аппетита (Bulimia And Anorexia). Операции Сборщика Мусора. Ключевые Концепции. Библиографические Заметки. Упражнения. У9.1 Модели Создания Объектов. У9.2 Какой Уровень Утилизации? У9.3 Совместное Использование Стека Достижимых Элементов. У9.4 Совместное Использование. Лекция 10. Универсализация. Горизонтальное И Вертикальное Обобщение Типа. Необходимость Параметризованных Классов. Родовые Атд. Проблема. Роль Типизации. Родовые Классы. Объявление Родового Класса. Использование Родового Класса. Терминология. Проверка Типов. Правило Типизации. Операции Над Сущностями Родового Типа. Типы И Классы. Массивы. Массивы Как Объекты. Свойства Массива. Размышления Об Эффективности. Синонимичная Инфиксная Операция. Стоимость Универсализации. Обсуждение: Что Все-Таки Не Сделано. Ключевые Концепции. Библиографические Замечания. Упражнения. У10.1 Ограниченная Универсализация. У10.2 Двумерные Массивы. У10.3 Использование Своего Формального Родового Параметра Фактически Как Чужого. Лекция 11. Проектирование По Контракту: Построение Надежного По. Базисные Механизмы Надежности. О Корректности По. Выражение Спецификаций. Формула Корректности. Сильные И Слабые Условия. Введение Утверждений В Программные Тексты. Предусловия И Постусловия. Класс Стек. Предусловия. Постусловия. Педагогическое Замечание. Контракты И Надежность По. Права И Обязательства. Интуиция (Дзен) И Искусство Программной Надежности: Больше Гарантий И Меньше Проверок. Утверждения Не Являются Механизмом Проверки Вводимых Данных. Утверждения Это Не Управляющие Структуры. Ошибки, Дефекты И Другие Насекомые. Работа С Утверждениями. Класс Стек. Императив И Аппликатив (Применимость). Замечание О Пустоте Структур. Проектирование Предусловий: Толерантное Или Требовательное? Предусловия И Статус Экспорта. Толерантные Модули. Инварианты Класса. Определение И Пример. Форма И Свойства Инвариантов Класса. Инвариант В Момент Изменения. Кто Должен Обеспечить Сохранность Инвариантов. Роль Инвариантов Класса В Программной Инженерии. Инварианты И Контракты. Когда Класс Корректен? Корректность Класса. Роль Процедур Создания. Ревизия Массивов. Связывание С Атд. Не Просто Коллекция Функций. Компоненты Класса И Атд Функции. Выражение Аксиом. Функция Абстракции. Инварианты Реализации. Инструкция Утверждения. Инварианты И Варианты Цикла. Трудности Циклов. Сделаем Циклы Корректными. Ингредиенты Доказательства Корректности Цикла. Синтаксис Цикла. Использование Утверждений. Утверждения Как Средство Для Написания Корректного По. Использование Утверждений Для Документирования: Краткая Форма Класса. Мониторинг Утверждений В Период Выполнения. Каков Оптимальный Уровень Мониторинга? Обсуждение. Нужен Ли Мониторинг В Период Выполнения? Выразительная Сила Утверждений. Включение Функций В Утверждения. Инварианты Класса И Семантика Ссылок. Что Дальше. Ключевые Концепции. Библиографические Замечания. Упражнения. У11.1 Комплексные Числа. У11.2 Класс И Его Атд. У11.3 Полные Утверждения Для Стеков. У11.4 Экспортирование Размера. У11.5 Инвариант Реализации. У11.6 Утверждения И Экспорт. У11.7 Поиск Жучков (Bugs). У11.8 Нарушение Инварианта. У11.9 Генерация Случайных Чисел. У11.10 Модуль "Очередь". У11.11 Модуль "Множество". Постскриптум: Катастрофа Ариан 5. Лекция 12. Когда Контракт Нарушается: Обработка Исключений. Базисные Концепции Обработки Исключений. Отказы. Исключения. Источники Исключений. Ситуации Отказа. Обработка Исключений. Как Не Следует Делать Это - C-Unix Пример. Как Не Следует Делать Это - Ada Пример. Принципы Обработки Исключений. Цепочка Вызовов. Механизм Исключений. Спаси И Повтори (Rescue И Retry). Как Отказаться Сразу. Таблица Истории Исключений. Примеры Обработки Исключений. Поломки При Вводе. Восстановление При Исключениях, Сгенерированных Операционной Системой. Повторение Программы, Толерантной К Неисправностям. N-Версионное Программирование. Задача Предложения Rescue. Корректность Предложения Rescue. Четкое Разделение Ролей. Когда Нет Предложения Rescue. Продвинутая Обработка Исключений. Запросы При Работе С Классом Exceptions. Какой Должна Быть Степень Контроля? Исключения Разработчика. Обсуждение. Дисциплинированные Исключения. Должны Ли Исключения Быть Объектами? Методологическая Перспектива. Ключевые Концепции. Библиографические Замечания. Упражнения. У12.1 Наибольшее Целое. У12.2 Объект Exception. Лекция 13. Поддерживающие Механизмы. Взаимодействие С Не Объектным По. Внешние Программы. Улучшенные Варианты. Использование Внешних Программ. Оо-Изменение Архитектуры (Re-Architecturing). Вопрос Совместимости: Гибридный Программный Продукт Или Гибридные Языки? Передача Аргументов. Инструкции. Вызов Процедуры. Присваивание (Assignment). Создание (Creation). Условная Инструкция (Conditional). Множественный Выбор. Циклы. Проверка. Отладка. Повторение Вычислений. Выражения. Манифестные Константы. Вызовы Функций. Текущий Объект. Выражения С Операторами. Нестрогие Булевы Операторы. Строки. Ввод И Вывод. Лексические Соглашения. Ключевые Концепции. Упражнения. У13.1 Внешние Классы. У13.2 Избегая Нестрогих Операторов. Лекция 14. Введение В Наследование. Многоугольники И Прямоугольники. Многоугольники. Прямоугольники. Основные Соглашения И Терминология. Наследование Инварианта. Наследование И Конструкторы. Пример Иерархии. Полиморфизм. Полиморфное Присоединение. Что На Самом Деле Происходит При Полиморфном Присоединении? Полиморфные Структуры Данных. Типизация При Наследовании. Согласованность Типов. Пределы Полиморфизма. Экземпляры. Статический Тип, Динамический Тип. Обоснованы Ли Ограничения? Может Ли Быть Польза От Неведения? Когда Хочется Задать Тип Принудительно. Полиморфное Создание. Динамическое Связывание. Использование Правильного Варианта. Переопределение И Утверждения. О Реализации Динамического Связывания. Отложенные Компоненты И Классы. Движения Произвольных Фигур. Отложенный Компонент. Эффективизация Компонента. Отложенные Классы. Соглашения О Графических Обозначениях. Что Делать С Отложенными Классами? Задание Семантики Отложенных Компонентов И Классов. Способы Изменения Объявлений. Повторное Объявление Функции Как Атрибута. Обратного Пути Нет. Использование Исходной Версии При Переопределении. Смысл Наследования. Двойственная Перспектива. Взгляд На Класс Как На Модуль. Взгляд На Класс Как На Тип. Наследование И Децентрализация. Независимость От Представления. Парадокс Расширения-Специализации. Роль Отложенных Классов. Назад К Абстрактным Типам Данных. Отложенные Классы Как Частичные Интерпретации: Классы Поведения. Не Вызывайте Нас, Мы Вызовем Вас. Программы С Дырами. Роль Отложенных Классов При Анализе И Глобальном Проектировании. Обсуждение. Явное Переопределение. Доступ К Предшественнику Процедуры. Динамическое Связывание И Эффективность. Оценка Накладных Расходов. Статическое Связывание Как Оптимизация. Кнопка Под Другим Именем: Когда Статическое Связывание Ошибочно. Подход Языка С++ К Связыванию. Ключевые Концепции. Библиографические Замечания. Упражнения. У14.1 Многоугольники И Прямоугольники. У14.2 Многоугольник С Малым Числом Вершин. У14.3 Геометрические Объекты С Двумя Координатами. У14.4 Наследование Без Классов. У14.5 Классы Без Объектов. У14.6 Отложенные Классы И Прототип. У14.7 Библиотека Поиска В Таблицах (Семестровый Проект). У14.8 Виды Отложенных Компонентов. У14.9 Комплексные Числа. Лекция 15. Множественное Наследование. Примеры Множественного Наследования. Пример, Неподходящий Для Введения. Может Ли Самолет Быть Имуществом? Числовые И Сравнимые Значения. Окна - Это Деревья И Прямоугольники. Деревья - Это Списки И Их Элементы. Составные Фигуры. Брак По Расчету. Структурное Наследование. Наследование Функциональных Возможностей. Лунка И Кнопка. Оценка. Переименование Компонентов. Конфликт Имен. Результат Переименования. Смена Имен И Переопределение. Подбор Локальных Имен. Играем В Имена. Использование Родительской Процедуры Создания. Плоские Структуры. Плоская Форма Класса. Применение Плоской Формы. Краткая Плоская Форма. Дублируемое Наследование. Общие Предки. По Обе Стороны Океана. Совместное Использование И Репликация. Ненавязчивое Дублирующее Наследование. Правило Переименования. Конфликт Переопределений. Конфликт При Совместном Использовании: Отмена Определения И Соединение Компонентов. Конфликты При Репликации: Выделение. Выделение Всех Компонентов. Сохранение Исходной Версии При Переопределении. Пример Повышенной Сложности. Дублируемое Наследование И Универсальность. Правила Об Именах. Обсуждение. Переименование. Оо-Разработка И Перегрузка. Ключевые Концепции. Библиографические Замечания. Упражнения. У15.1 Окна Как Деревья. У15.2 Является Ли Окно Строкой? У15.3 Завершение Строительства. У15.4 Итераторы Фигур. У15.5 Связанные Стеки. У15.6 Кольцевые Списки И Цепи. У15.7 Деревья. У15.8 Каскадные Или "Шагающие" (Walking) Меню. У15.9 Плоский Precursor (Предшественник). У15.10 Дублируемое Наследование И Репликация. Лекция 16. Техника Наследования. Наследование И Утверждения. Инварианты. Предусловия И Постусловия При Наличии Динамического Связывания. Как Обмануть Клиентов. Как Быть Честным. Пример. Устранение Посредника. Субподряды. Абстрактные Предусловия. Правило Языка. Повторное Объявление Функции Как Атрибута. Замечание Математического Характера. Глобальная Структура Наследования. Универсальные Классы. Нижняя Часть Иерархии. Универсальные Компоненты. Замороженные Компоненты. Запрет Повторного Объявления. Фиксированная Семантика Компонентов Copy, Clone И Equality. Не Злоупотребляйте Замораживанием. Ограниченная Универсальность. Вектора, Допускающие Сложение. Не Оо-Подход. Ограничение Родового Параметра. Игра В Рекурсию. И Снова Неограниченная Универсальность. Попытка Присваивания. Когда Правила Типов Становятся Несносными. Проблема. Механизм Решения. Правильное Использование Попытки Присваивания. Типизация И Повторное Объявление. Устройства И Принтеры. Одно- И Двусвязные Элементы. Правило Повторного Объявления Типов. Закрепленные Объявления. Несогласованность Типов. Примеры Из Практики. Серьезное Затруднение. Понятие Опорного Элемента. Опорный Элемент Current. Еще Раз О Базовых Классах. Правила О Закрепленных Типах. Когда Не Используются Закрепленные Объявления. Статический Механизм. Наследование И Скрытие Информации. Кое-Что О Политике. Применение. Зачем Нужна Такая Гибкость? Интерфейс И Повторное Использование Реализаций. Слово В Защиту Реализаций. Два Стиля. Выборочный Экспорт. Ключевые Концепции. Библиографические Замечания. Упражнения. У16.1 Наследование: Простота И Эффективность. У16.2 Векторы. У16.3 Экстракт? Лекция 17. Типизация. Проблема Типизации. Базисная Конструкция. Статическая И Динамическая Типизация. Правила Типизации. Реализм. Пессимизм. Статическая Типизация: Как И Почему. Преимущества. Аргументы В Пользу Динамической Типизации. Типизация: Слагаемые Успеха. "Типизирована Ли Кроха"? Типизация И Связывание. Ковариантность И Скрытие Потомком. Ковариантность. Параллельные Иерархии. Своенравие Полиморфизма. Скрытие Потомком. Корректность Систем И Классов. Практический Аспект. Корректность Систем: Первое Приближение. Контравариантность И Безвариантность. Использование Родовых Параметров. Типовые Переменные. Полагаясь На Закрепление Типов. Глобальный Анализ. Остерегайтесь Полиморфных Кэтколлов! Назад, В Ялту. Одно Правило И Несколько Определений. Оценка. Полное Соответствие. Ключевые Концепции. Библиографические Замечания. Лекция 18. Глобальные Объекты И Константы. Константы Базовых Типов. Атрибуты-Константы. Использование Констант. Константы Пользовательских Классов. Константы С Манифестом Для Этого Непригодны. Однократные Функции. Применение Однократных Подпрограмм. Разделяемые Объекты. Однократные Функции С Результатами Базовых Типов. Однократные Процедуры. Параметры. Однократные Функции, Закрепление И Универсальность. Константы Строковых Типов. Unique-Значения. Обсуждение. Инициализация: Подходы Языков Программирования. Строковые Константы. Unique-Значения И Перечислимые Типы. Ключевые Концепции. Библиографические Замечания. Упражнения. У18.1 Эмуляция Перечислимых Типов Однократными Функциями. У18.2 Однократные Функции Для Эмуляции Unique-Значений. У18.3 Однократные Функции В Родовых Классах. У18.4 Однократные Атрибуты? Примечания.