Составители:
Рубрика:
46
Для класса в C++ реализуется возможность наследования. Насле-
дование прежде всего является эффективным механизмом повторного
использования классов, когда новые классы строятся при необходимо-
сти на базе уже существующих, а не с нуля. При этом необходимо раз-
личать понятия наследования и агрегирования. Наследование отражает
отношения между классами «это есть». Примеры наследования: автомо-
биль
есть транспортное средство, клиент банка есть человек, прямо-
угольник есть геометрическая фигура. Таким образом, при наследовании
базовый и производный классы выступают как, соответственно, обоб-
щение и конкретизация некоторого объекта реального мира. В случае
наследования новый класс в буквальном смысле создаётся на основе ра-
нее объявленного класса, наследует, а возможно и
модифицирует его
данные и функции. Объявленный класс может служить основой (базо-
вым классом) для новых производных классов. Производные классы на-
следуют данные и функции своих базовых классов и добавляют собст-
венные компоненты.
Агрегирование предполагает возможность объявления в классе
отдельных членов класса на основе ранее объявленных классов. Таким
образом, агрегирование отражает отношение
между классами “быть ча-
стью”. Примеры агрегирования: двигатель есть часть автомобиля, лепе-
сток есть часть цветка, цветок есть часть растения. Ранее мы уже встре-
чали примеры агрегирования классов – когда класс bank содержал спи-
сок объектов класса client. При агрегировании классов агрегирующий
класс также как и при наследовании получает возможность доступа
к
компонентным данным и методам агрегируемого класса (безусловно, с
ограничениями, накладываемыми их областями видимости), но эти дан-
ные и методы не становятся собственностью объектов этого класса. Аг-
регируемый класс остается автономным объектом, что накладывает ряд
Для класса в C++ реализуется возможность наследования. Насле- дование прежде всего является эффективным механизмом повторного использования классов, когда новые классы строятся при необходимо- сти на базе уже существующих, а не с нуля. При этом необходимо раз- личать понятия наследования и агрегирования. Наследование отражает отношения между классами «это есть». Примеры наследования: автомо- биль есть транспортное средство, клиент банка есть человек, прямо- угольник есть геометрическая фигура. Таким образом, при наследовании базовый и производный классы выступают как, соответственно, обоб- щение и конкретизация некоторого объекта реального мира. В случае наследования новый класс в буквальном смысле создаётся на основе ра- нее объявленного класса, наследует, а возможно и модифицирует его данные и функции. Объявленный класс может служить основой (базо- вым классом) для новых производных классов. Производные классы на- следуют данные и функции своих базовых классов и добавляют собст- венные компоненты. Агрегирование предполагает возможность объявления в классе отдельных членов класса на основе ранее объявленных классов. Таким образом, агрегирование отражает отношение между классами “быть ча- стью”. Примеры агрегирования: двигатель есть часть автомобиля, лепе- сток есть часть цветка, цветок есть часть растения. Ранее мы уже встре- чали примеры агрегирования классов – когда класс bank содержал спи- сок объектов класса client. При агрегировании классов агрегирующий класс также как и при наследовании получает возможность доступа к компонентным данным и методам агрегируемого класса (безусловно, с ограничениями, накладываемыми их областями видимости), но эти дан- ные и методы не становятся собственностью объектов этого класса. Аг- регируемый класс остается автономным объектом, что накладывает ряд 46
Страницы
- « первая
- ‹ предыдущая
- …
- 44
- 45
- 46
- 47
- 48
- …
- следующая ›
- последняя »