Четвертый BORLAND С++ и его окружение

       

Расширяемость кода


Наследование позволяет повторно использовать существующие исходные тексты программ, подправлять их и перекомпилировать. Эта способность готового к компиляции исходного текста названа расширяемостью.

Наследование >

Новый класс

shape.h + circle.h = circle.h

shape.obj circle.c circle.obj

Для дополнения класса shape (фигура) классом circle (круг),

достаточно лишь объявления его в классе shape (без изменения функций

элементов класса) в модуле shape.h и скомпилировать исходный текст в

shape.obj. Таким образом нет необходимости изменять исходный текст

shape.c.

Успешное создание потомков позволяет увеличивать программу за

счет накопления уже готовых текстов программ. Так, круг наследуют все

свойства фигуры, а цилиндры наследуют все свойства круга и фигуры.

Цилиндр: cylinder() ht area() vol()

Круг: circle() radius area()

Фигура: shape() xo yo area()

Возможно вы заметили по картинке, что класс цилиндр имеет три

функции area(). Действительно, унаследована одна функция area() у окружности, и одна у фигуры. Заимствование этих двух функций, для цилиндра оставляет возможность доступа к ним.

Примечание: порожденный класс может только наращивать базовый класс,

но не способен удалять какие-либо элементы.

Программист, без исходного текста программы, располагая лишь

описанием интерфейса с некоторым классом, может определить новый

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

класса так, как ему нужно.



Содержание раздела