![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Gunslinger |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 30.12.2006 Где: Астрахань Репутация: 1 Всего: 3 |
Про наследование говорю. Цель понятна, но в с++ наследование, оказалось, бывает разное: множественное, виртуальное, интерфейсов, реализации... может и еще какое есть. В голове каша. Помогите структурировать:
вид наследования причины появления простенький пример (хотя бы на словах). Заранее спасибо |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Ты еще забыл наследование "обычное"
А еще наследование бывает открытое, закрытое и защищенное, это тебе для полноты каши. Наследование интерфейсов и наследование реализации - вещи действительно концептуальные (смысл следует из названия). Наследование множественное и виртуальное - сугубо технические аспекты, так сказать, детали реализации. Ну, удобно иногда бывает. Закрытое, защищенное, открытое - тоже детали реализации и способ инкапсюляции. С точки зрения языка - все пишется (и реализуется) примерно одинаково (кроме виртуального, там надо слово virtual добавлять Наследование интерфейса - это в чистом виде "is a" - т.е. производный класс может подставляться вместо базового. При реализации обычно используется открытое наследование (т.е. public). Наследование реализации - это просто заимствование кода (не в смысле копи-паст, а использование уже написанного). Реализуется по разному - как закрытое\защищенное наследование, как embedded-объекты с делегированием вызовов и т.д. Ты бы поконкретнее спросил, очень уж обширная тема. -------------------- ... |
|||
|
||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
Gunslinger, лучше сначала тебе обычное наследование осилить. Зачем оно нужно, чем от включения отличается...
про остальные пока забудь имхо, так легче |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Во, и Alek86 про "обычное" напомнил
Кстати, Gunslinger, когда говорят о наследовании в контексте ООП, то имеют в виду прежде всего наследование интерфейса. Все остальное - внутренние кишки C++. Это как "класс" в C++ и "класс окна" в Виндоус: слово одно, а вещи означает совсем разные. -------------------- ... |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |