558 _____________________________Часть IV. Новые возможности C++
может быть унаследована, и она не транзитивна; например, если бы TChordGaugePart был другом TChordGauge, ЭТО не означало бы, что производные ОТ TChordGaugePart классы, такие как TChordGaugeBorderPart, были
бы его друзьями (TChordGauge тоже не был бы другом класса TGauge, базового ДЛЯ TChordGauge).
После этих небольших изменений перед нами открывается прекрасная возможность в полную силу применить полиморфизм в функции-члене TChordGauge:: paint. Неважно, сколько различных частей мы добавим в класс TChordGauge, он смог бы обращаться со всеми одинаковым образом. Возьмите файл Chordg.cpp и попытайтесь реализовать эти изменения так, как мы их здесь наметили.
Счастливо наследовать!
Далее...
« Полиморфизм и наследование — это' две из наиболее сильных и привлекательных сторон C++ и объектно-ориентированного программирования в целом. Так как популярность и широта коммерческого применения C++ продолжают расти, перед вами открываются неисчерпаемые источники библиотек классов, из которых вы сможете наследовать функциональные возможности так же, как вы делали это в наших примерах с OWL. Используйте эти возможности наилучшим образом, и вы сэкономите на разработке массу усилий, которые сможете потратить на другие стороны ваших проектов.
• Глава 3 "Объектно-ориентированные анализ и проектирование" знакомит с некоторыми концепциями, связанными с объектно-ориентированным программированием и классами C++, в частности, с наследованием и полиморфизмом.
• Глава 24 "Пространства имен" знакомит с новым средством предотвращения конфликтов имен в языке C++.
• Глава 25 "Графический интерфейс устройства" содержит массу примеров графических программных интерфейсов для Windows.