Интерфейсы
Определимся с тем, что мы в данном случае понимаем под Интерфейсом.
Интерфейс определяет границу между спецификацией того, что делает абстракция, и реализацией того, как она это делает [3.3].
Интерфейс - это набор операций, используемых для специфицирования услуг, предоставляемых классом или компонентом [3.3].
Смысл использования Интерфейса состоит в отделении деталей реализации от функциональности. Так, класс, подсистема, компонент обычно предоставляют некоторую функциональность, которой могут пользоваться другие классы, подсистемы, компоненты. Описание этой, доступной извне, функциональности содержится в Интерфейсе.
Во многих языках программирования понятие Интерфейс включено в объектную модель, что сообразно отражается на синтаксисе (Object Pascal, Java и др.). С++, к сожалению, не содержит понятия Интерфейс, поэтому Интерфейсы моделируются посредством использования классов.

увеличить изображение
Рис. 3.12.