Основы объектно-ориентированного программирования
Наследование и утверждения
Наследование и утверждения
Инварианты
Предусловия и постусловия при наличии динамического связывания
Как обмануть клиентов
Как быть честным
Пример
Устранение посредника
Субподряды
Абстрактные предусловия
Правило языка
Замечание математического характера
Глобальная структура наследования
Универсальные классы
Нижняя часть иерархии
Универсальные компоненты
Замороженные компоненты
Запрет повторного объявления
Фиксированная семантика компонентов copy, clone и equality
Не злоупотребляйте замораживанием
Ограниченная универсальность
Вектора, допускающие сложение
Не ОО-подход
Ограничение родового параметра
Игра в рекурсию
И снова неограниченная универсальность
Попытка присваивания
Когда правила типов становятся несносными
Когда правила типов становятся несносными - 2
Проблема
Механизм решения
Правильное использование попытки присваивания
Типизация и повторное объявление
Устройства и принтеры
Одно- и двусвязные элементы
Правило повторного объявления типов
Закрепленные объявления
Несогласованность типов
Примеры из практики
Серьезное затруднение
Понятие опорного элемента
Опорный элемент Current
Еще раз о базовых классах
Правила о закрепленных типах
Когда не используются закрепленные объявления
Статический механизм
Наследование и скрытие информации
Кое-что о политике
Применение
Зачем нужна такая гибкость?
Интерфейс и повторное использование реализаций
Слово в защиту реализаций
Два стиля
Выборочный экспорт
Ключевые концепции
Библиографические замечания
У16.1 Наследование: простота и эффективность
У16.2 Векторы
У16.3 Экстракт?
Содержание раздела