- 1 -

1.10 Упражнения

1.6 Приложение

1.9 Выводы

10.8 Выводы

10.9 Упражнения

11.1 Пример

11.5 Выводы

11.6 Упражнения

12.1 Пример

12.6 Выводы

12.7 Упражнения

13.4 Выводы

13.5 Упражнения

14.2 Реализация

14.7 Выводы

14.8 Упражнения

- 2 -

2.4 Приложение

2.7 Выводы

2.8 Упражнения

- 3 -

3.10 Выводы

- 4 -

4.11 Упражнения

4.8 Выводы

- 5 -

5.10 Упражнения

5.9 Выводы

- 6 -

6.11 Выводы

6.7 Инициализация

- 7 -

7.8 Примеры

- 8 -

8.3 Реализация

8.6 Выводы

8.7 Упражнения

- 9 -

9.1 Инициализация

9.4 Реализация

9.5 Выводы

9.6 Упражнения

- C -

const

- O -

Object

- T -

typedef и const

- А -

Абстрактные базовые классы

Абстрактные типы данных

Абстрактные типы данных — Скрытие информации

Object

Абстрактные типы данных

Выводы

Другая реализация — Bag

Приложение

Пример — Set

Реализация — Set

Типы данных

Управление памятью

Упражнения

Арифметика

Архитектура

- Б -

База данных

Базовый класс — Point

Блокирующий Ввод/Вывод

- В -

Видимость и функции доступа

Возвращаемся к Object

Возвращаемся к Point

- Г -

Генерация отчётов — report.awk

Глобальные переходы— setjmp.h

Графический интерфейс — Xt

- Д -

Делегаты

Делегаты — Функции обратного вызова

Абстрактные базовые классы

Выводы

Делегаты

Другое приложение — sort

Метод respondsTo

Обратные вызовы

Реализация

Среда разработки приложений — Filter

Упражнения

Динамическая компоновка

Динамическая компоновка — Родовые функции

Выводы

Другая реализация — Atom

Конструкторы и деструкторы

Методы, сообщения, классы и объекты

Приложение

Реализация — String

Селекторы, динамическое связывание и полиморфизм

Упражнения

Динамическая проверка типов — Безопасное программирование

Выводы

Избегаем рекурсии

Пример — list

Реализация

Стандарт кодирования

Технические приёмы

Упражнения

Другая реализация — Atom

Другая реализация — Bag

Другое приложение — sort

Другой подкласс — Константы

- З -

Загрузка объектов — retrieve()

Заполнение объектов — geto()

- И -

Идея

Иерархия классов — Надёжность и удобство сопровождения

Блокирующий Ввод/Вывод

Выводы

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

Наследование — Any

Новый метакласс — PointClass

Основа — Object и Class

Реализация — Class

Реализация — Object

Селекторы

Селекторы суперклассов

Требования

Избегаем рекурсии

Имена и область видимости

Инфиксный вывод

Исключения — Порядок восстановления после ошибки

Выводы

Примеры

Реализация — Exception

Стратегия

Упражнения

Использование переменных

- К -

Классы калькулятора с графическим интерфейсом

Команды

Команды ooc

Компоновка и наследование

Конструкторы и деструкторы

Корневые классы

- М -

Математические функции — Math

Метод respondsTo

Методы класса — Ликвидация утечек памяти

Выводы

Методы классов

Пример

Программируем с умом — Классный калькулятор

Реализация методов классов

Упражнения

Методы классов

Методы, сообщения, классы и объекты

Множественное наследование

- Н -

Наследование — Any

Наследование — Circle

Наследование — Повторное использование кода и усовершенствование

Базовый класс — Point

Видимость и функции доступа

Выводы

Компоновка и наследование

Множественное наследование

Наследование — Circle

Реализация базового класса — Point

Реализация подкласса — Circle

Статическая и динамическая компоновка

Упражнения

Является им или имеет его? — Наследование против агрегации

Неопределённые указатели — void *

Новый метакласс — PointClass

Нумерация строк

- О -

Обратные вызовы

Обсуждение

Объектно-ориентированное программирование на ANSI-C

Основа — Object и Class

Основная программа — main.awk

Основной цикл

- П -

Передача сообщений — Калькулятор с графическим интерфейсом

Выводы

Графический интерфейс — Xt

Идея

Пример объекто-ориентированного проекта

Реализация

Реализация — Ic

Текстовый интерфейс — curses

Упражнения

Подключение объектов — Возвращаемся к value

Постоянные объекты — Сохранение и загрузка структур данных

Выводы

Загрузка объектов — retrieve()

Заполнение объектов — geto()

Подключение объектов — Возвращаемся к value

Пример

Сохранение объектов — puto()

Упражнения

Постфиксная запись

Предварительная обработка

Препроцессор

Препроцессор ooc — Обеспечение выполнения стандарта кодирования

Возвращаемся к Object

Возвращаемся к Point

Обсуждение

Предварительная обработка

Пример — List, Queue и Stack

Примеры

Разработка

Стратегия реализации

Препроцессор ooc — Советы по программированию на awk

Архитектура

База данных

Генерация отчётов — report.awk

Команды ooc

Нумерация строк

Основная программа — main.awk

Распознавание — parse.awk

Управление файлами— io.awk

Файлы отчётов

Пример — list

Пример — List, Queue и Stack

Пример — Set

Пример объекто-ориентированного проекта

Примеры

Присвоение

Проверка — assert.h

Программируем с умом — Арифметические выражения

Арифметика

Выводы

Динамическая компоновка

Инфиксный вывод

Основной цикл

Постфиксная запись

Процессор

Распознаватель

Сканер

Скрытие информации

Программируем с умом — Классный калькулятор

Программируем с умом — Таблица символов

Выводы

Другой подкласс — Константы

Использование переменных

Математические функции — Math

Присвоение

Распознаватель — Name

Реализация суперкласса — Name

Реализация суперкласса — Var

Сканирование идентификаторов

Упражнения

Процессор

- Р -

Разработка

Распознавание — parse.awk

Распознаватель

Распознаватель — Name

Реализация

Реализация — Class

Реализация — Exception

Реализация — Ic

Реализация — Object

Реализация — Set

Реализация — String

Реализация базового класса — Point

Реализация методов классов

Реализация подкласса — Circle

Реализация суперкласса — Name

Реализация суперкласса — Var

Руководство

Классы калькулятора с графическим интерфейсом

Команды

Корневые классы

Функции

- С -

Селекторы

Селекторы суперклассов

Селекторы, динамическое связывание и полиморфизм

Сканер

Сканирование идентификаторов

Скрытие информации

Советы по программированию на ANSI-C

IconПриложение A, Советы по программированию на ANSI-C
IconA.11 Списки с изменяемым числом аргументов — stdarg.h

const

typedef и const

Глобальные переходы— setjmp.h

Имена и область видимости

Неопределённые указатели — void *

Препроцессор

Проверка — assert.h

Структуры

Типы данных — stddef.h

Указатели на функции

Управление памятью — stdlib.h

Функции

Функции для работы с памятью — string.h

Сохранение объектов — puto()

Списки инициализации — munch

Список литературы

Среда разработки приложений — Filter

Стандарт кодирования

Статическая и динамическая компоновка

Статический конструктор — Самоорганизация

Выводы

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

Реализация

Списки инициализации — munch

Упражнения

Функции для объектов

Стратегия

Стратегия реализации

Структуры

- Т -

Текстовый интерфейс — curses

Технические приёмы

Типы данных

Типы данных — stddef.h

Требования

- У -

Указатели на функции

Управление памятью

Управление памятью — stdlib.h

Управление файлами— io.awk

- Ф -

Файлы отчётов

Функции

IconA.2 Функции
IconC.2 Функции

Функции для объектов

Функции для работы с памятью — string.h

- Я -

Является им или имеет его? — Наследование против агрегации