Глава 20. Наследование и полиморфизм___________________________545

нием на С (это возможно, хотя и трудновато), наверное, вам сейчас хочется возразить. Вместо использования флагов и большого оператора switch мы могли бы определить тип Employee в виде структуры, содержащей указатель на функцию, например:

struct Employee 1

long socialSecurityNumber;

void (*PrintData) () ;

);

Для каждой разновидности служащих этому указателю присваивается свое значение адреса функции печати; тогда для каждой структуры в нашем массиве мы сможем вызывать соответствующую ей функцию printData. Но этот способ также довольно труден и запутан. Если можете, пользуйтесь полиморфизмом в стиле C++.

Наследование исходного кода

Как было замечено ранее при обсуждении наследования, на C++ написан огромный объем исходного кода, который вы можете использовать в своих собственных программах, просто наследуя новые классы от существующих и адаптируя их функции для решения ваших собственных задач. Только в одном Borland C++ содержатся бесчисленные классы в библиотеке классов, в примерах, в OWL и т. д. Если вы много программируете для Windows, то это такой'ресурс, который вы не можете игнорировать.

Рост популярности C++ обеспечил повышение спроса на так называемый инструментарий разработки приложений (application frameworks), который предоставляет легко понятные иерархические интерфейсы классов для разработки приложений, особенно в средах GUI (Graphics User Interface, Графический интерфейс пользователя) типа Windows. Самые популярные компиляторы также поставляются с инструментарием разработки приложений;

OWL фирмы Borland — лучший тому пример. Как уже говорилось, в этот инструментарий заложены все преимущества наследования и полиморфизма C++, хотя первоначально большинство сегодняшних графических интерфейсов пользователя были написаны на С или на PASCAL.

Совет

Чтобы избежать долгого ожидания при построении приложений OWL, убедитесь, что в опциях вашего проекта разрешена предварительная компиляция заголовков. При первой компиляции своего проекта вам все же потребуется время для обработки заголовочных файлов, но потом они каждый раз будут просто загружаться с диска в ваш проект.

1. В меню Option выберите Project;

2. В списке topics двойным щелчком разверните пункт Compiler.