ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 9) онлайн

Абстрактный базовый класс

Заметим, что мы не определяли объекты класса employee. Мы использовали его как общий класс, единственной целью которого было стать базовым для произ- водных классов.

Класс laborer выполняет те же функции, что и класс employee, так как не име- ет никаких отличий от него. Может показаться, что класс laborer в данном слу- чае лишний, но, создав его, мы подчеркнули, что все классы имеют один источ- ник — класс employee. Кроме того, если мы захотим в будущем модифицировать класс Laborer, то нам не потребуется делать изменения в классе employee.

Классы, использующиеся только как базовые для производных, например как employee в программе EMPLOY, иногда ошибочно называют абстрактными классами, подразумевая, что у этого класса нет объектов. Однако термин абст- рактный имеет более точное определение, и мы это увидим в главе 11 «Вирту- альные функции».

 

22