Основы объектно-ориентированного программирования
Многоугольники и прямоугольники
Многоугольники и прямоугольники
Многоугольники
Прямоугольники
Основные соглашения и терминология
Наследование инварианта
Наследование и конструкторы
Пример иерархии
Полиморфизм
Полиморфное присоединение
Что на самом деле происходит при полиморфном присоединении?
Полиморфные структуры данных
Типизация при наследовании
Согласованность типов
Пределы полиморфизма
Экземпляры
Статический тип, динамический тип
Обоснованы ли ограничения?
Может ли быть польза от неведения?
Когда хочется задать тип принудительно
Полиморфное создание
Динамическое связывание
Использование правильного варианта
Переопределение и утверждения
О реализации динамического связывания
Отложенные компоненты и классы
Движения произвольных фигур
Отложенный компонент
Эффективизация компонента
Отложенные классы
Соглашения о графических обозначениях
Что делать с отложенными классами?
Задание семантики отложенных компонентов и классов
Способы изменения объявлений
Повторное объявление функции как атрибута
Обратного пути нет
Использование исходной версии при переопределении
Смысл наследования
Двойственная перспектива
Взгляд на класс как на модуль
Взгляд на класс как на тип
Наследование и децентрализация
Независимость от представления
Парадокс расширения-специализации
Роль отложенных классов
Назад к абстрактным типам данных
Отложенные классы как частичные интерпретации: классы поведения
Не вызывайте нас, мы вызовем вас
Программы с дырами
Роль отложенных классов при анализе и глобальном проектировании
Обсуждение
Явное переопределение
Доступ к предшественнику процедуры
Динамическое связывание и эффективность
Оценка накладных расходов
Статическое связывание как оптимизация
Кнопка под другим именем: когда статическое связывание ошибочно
Подход языка С++ к связыванию
Ключевые концепции
Библиографические замечания
У14.1 Многоугольники и прямоугольники
У14.2 Многоугольник с малым числом вершин
У14.3 Геометрические объекты с двумя координатами
У14.4 Наследование без классов
У14.5 Классы без объектов
У14.6 Отложенные классы и прототип
У14.7 Библиотека поиска в таблицах (семестровый проект)
У14.9 Комплексные числа
Содержание раздела