Шрифт:
25.3.3. Пример пула
25.3.4. Пример стека
25.4. Адреса, указатели и массивы
25.4.1. Непроверяемые преобразования
25.4.2. Проблема: дисфункциональный интерфейс
25.4.3. Решение: интерфейсный класс
25.4.4. Наследование и контейнеры
25.5. Биты, байты и слова
25.5.1. Операции с битами и байтами
25.5.2. Класс bitset
25.5.3. Целые числа со знаком и без знака
25.5.4. Манипулирование битами
25.5.5. Битовые поля
25.5.6. Пример: простое шифрование
25.6. Стандарты программирования
25.6.1. Каким должен быть стандарт программирования?
25.6.2. Примеры правил
25.6.3. Реальные стандарты программирования
Глава 26 Тестирование
26.1. Чего мы хотим
26.1.1. Предостережение
26.2. Доказательства
26.3. Тестирование
26.3.1. Регрессивные тесты
26.3.2. Модульные тесты
26.3.2.1. Стратегия тестирования
26.3.2.2. Схема простого теста
26.3.2.3. Случайные последовательности
26.3.3. Алгоритмы и не алгоритмы
26.3.3.1. Зависимости
26.3.3.2. Управление ресурсами
26.3.3.3. Циклы
26.3.3.4. Ветвление
26.3.4. Системные тесты
26.3.4.1. Зависимости
26.3.5. Тестирование классов
26.3.6. Поиск предположений, которые не выполняются
26.4. Проектирование с учетом тестирования
26.5. Отладка
26.6. Производительность
26.6.1. Измерение времени
26.7. Ссылки
Глава 27 Язык программирования С
27.1. Языки С и С++: братья
27.1.1. Совместимость языков С и С++
27.1.2. Свойства языка С++, которых нет в языке С
27.1.3. Стандартная библиотека языка С
27.2. Функции
27.2.1. Отсутствие перегрузки имен функций
27.2.2. Проверка типов аргументов функций
27.2.3. Определения функций
27.2.4. Вызов функций, написанных на языке С, из программы на языке С++, и наоборот
27.2.5. Указатели на функции
27.3. Второстепенные языковые различия
27.3.1. Дескриптор пространства имен struct
27.3.2. Ключевые слова
27.3.3. Определения
27.3.4. Приведение типов в стиле языка С
27.3.5. Преобразование указателей типа void*
27.3.6. Перечисление
27.3.7. Пространства имен