|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
НаследованиеДва типа иерархии объектов: 1) На схеме компьютера изображена иерархия, потому что каждый верхний уровень описывает более общие понятия чем нижний. Отношения, связывающие объекты, можно назвать "содержит". Например: компьютер содержит системный блок, системный блок содержит процессор. Так как речь идет об иерархии частей, то такую схему называют partnomy. Эта иерархия может реализовываться при описании классов. В этом случае свойства класса имеют тип некоторого другого класса. Class engine {...}; Class auto { Engine eng;...}; 2) эта иерархия является (AKO (a kinf of)). Персональный компьютер является компьютером. Планшет является персональным и компьютером вообще. Иначе: персональный компьютер - разновидность компьютера. Планшет - разновидность персонального компьютера. И планшеты разновидность компьютера вообще. Такая иерархия называется таксономия. Каждый следующий уровень иерархии уточняет свойства предыдущего уровня. Персональный компьютер - это компьютер, предназначенный для индивидуального использования. Планшетный - это персональный компьютер, который легко переносить. Если мы опишем свойства персонального компьютера, то они будут распространяться и на настольные и на планшетные. Поэтому, описывая планшетный, компьютер мы можем не повторять описание персонального, а просто сказать - это персональный + такие-то свойства. Иначе говоря, планшетные компьютеры наследуют свойства персональных, и компьютеров вообще. В этой иерархии каждый уровень определяет тип объектов, но эти объекты одновременно принадлежат всем типам своих предков. Этот тип иерархии используется для реализации наследования в СИ++. Единичное наследование в C++ Различают два типа наследования: единичное и множественное. При единичном наследовании каждый класс имеет только один непосредственный родительский класс. При множественном наследовании родительских классов может быть несколько. Родительский класс называют базовым, а дочерние производными. С точки зрения программирования реализация наследования означает, что родительский класс передает дочернему свои свойства и методы, которые не нужно заново определять дочерними классами. Дочерний класс пользуется ими как своими собственными. Объекты дочернего класса пользуются ими как принадлежащими этому классу. В СИ++ есть механизмы, позволяющие управлять наследованием: 1) новый тип разделов в описании классов Так как наследование предполагает близость классов, то в СИ++ добавлен третий раздел protected, который содержит члены класса, доступные методам дочерних классов. При прямом обращении к этим членам protected работает также как private. 2) типы наследования: в СИ++ наследование может быть реализовано как public, protected и private. Этот механизм позволяет управлять тем, какой уровень доступности будут иметь член родительского класса, когда они рассматриваются как члены дочернего класса. По умолчанию используется наиболее ограничительный тип наследования private. Для того чтобы указать, что некоторый класс является наследником другого класса используется следующий синтаксис: class Derived: тип_наследования Base {...} Class Base { Public: int x; int y; }; Class derived: base {...} Поля x и y как члены класса derived будут относиться к разделу private. В СИ++ тип наследования влияет на доступность всех членов класса. Иногда нам нужно для некоторых полей сохранить уровень доступа. Например, нужно оставить поле y в разделе public. В производном классе можно восстановить уровень доступности отдельных членов базового класса. Для этого нужно добавить указание на этот член класса в соответствующий раздел производного класса, в который его нужно восстановить. Y был в разделе public. После наследования он попал в раздел private. Мы можем восстановить уровень, добавив в раздел public производного класса указание на поле y: public: base::y; Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.) |