Программирование — страница 6 из 57

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. Пространства имен

27.4. Свободная память

27.5. Строки в стиле языка С

27.5.1. Строки в стиле языка С и ключевое слово const

27.5.2. Операции над байтами

27.5.3. Пример: функция strcpy()

27.5.4. Вопросы стиля

27.6. Ввод-вывод: заголовок stdio

27.6.1. Вывод

27.6.2. Ввод

27.6.3. Файлы

27.7. Константы и макросы

27.8. Макросы

27.8.1. Макросы, похожие на функции

27.8.2. Синтаксис макросов

27.8.3. Условная компиляция

27.9. Пример: интрузивные контейнеры

Часть V Приложения

Приложение А Краткий обзор языка

A.1. Общие сведения

A.1.1. Терминология

A.1.2. Старт и завершение программы

A.1.3. Комментарии

A.2. Литералы

A.2.1. Целочисленные литералы

A.2.1.1. Числовые системы

A.2.2. Литералы с плавающей точкой

A.2.3. Булевы литералы

A.2.4. Символьные литералы

A.2.5. Строковые литералы

A.2.6. Указательные литералы

A.3. Идентификаторы

A.3.1. Указательные литералы

A.4. Область видимости, класс памяти и время жизни

A.4.1. Область видимости

A.4.2. Класс памяти

A.4.3. Время жизни

A.5. Выражения

A.5.1. Операторы, определенные пользователем

A.5.2. Неявное преобразование типа

A.5.2.1. Продвижения