Наследование — механизм создания нового класса из старого. То есть, к существующему классу можно что-либо добавлять, или изменять его каким-то образом для создания нового (порожденного) класса. Это мощный механизм для повторного использования кода. Наследование позволяет создавать иерархию связанных типов, совместно использующих код и интерфейс.
Большинство полезных типов представляют собой различные варианты друг друга, поэтому утомительно выписывать для каждого один и тот же код. Порожденный класс наследует описание основного класса. Затем он может изменяться с помощью добавления членов, изменения функций существующих членов и изменения привилегий доступа. Удобство этого понятия можно показать на примере таксономической классификации, компактно подводящей итог больших областей знания. Например, если известно понятие “млекопитающее”, а так же, что слон и мышь являются млекопитающими, то их описания можно сделать значительно более сжатыми, чем в другом случае. Корневое понятие “млекопитающее” содержит информацию о том, что млекопитающие — это теплокровные животные, относящиеся к высшим позвоночным, которые выкармливают своих детенышей молоком, производящимся в их молочных железах. Эта информация унаследована и мышью, и слоном, но она выражается только один раз: в корневом понятии “млекопитающее”. В C++ это означает, что признаки обоих классов, слона и мыши, порождены от основного класса, “млекопитающее”.
Продолжить читать "Наследование"