Основы объектно-ориентированного программирования


14


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



Начало