Модераторы: Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++] Наследование, Имеется 3 исходные кафедры... 
:(
    Опции темы
apook
Дата 5.9.2007, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 794
Регистрация: 12.7.2006

Репутация: 10
Всего: 23



Цитата(sentry @  20.8.2007,  09:45 Найти цитируемый пост)
Не понял, где тут наследование? Есть кафедра, есть преподаватель. Но кафедра это не преподаватель, а преподаватель это не кафедра

кафедра это не преподаватель, а вот преподаватель как-раз кафедра!



--------------------
Мои руки из дуба, голова из свинца ну и пусть ...
PM MAIL   Вверх
Xenon
Дата 5.9.2007, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1529
Регистрация: 12.4.2006

Репутация: 19
Всего: 50



Наследование-то бывает и делигированием и включением и классическим smile
У Кафежры есть преподователь ... HAS наследование, то есть включением smile


--------------------
user posted image  
PM MAIL   Вверх
JackYF
Дата 5.9.2007, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 2
Всего: 162



Цитата(Xenon @  5.9.2007,  19:55 Найти цитируемый пост)
HAS наследование, то есть включением smile

не, ну это же не наследование. Если я принес в квартиру комп, то квартира от компа никак не наследуется smile


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
apook
Дата 5.9.2007, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 794
Регистрация: 12.7.2006

Репутация: 10
Всего: 23



Цитата(JackYF @  5.9.2007,  22:57 Найти цитируемый пост)
 Если я принес в квартиру комп, то квартира от компа никак не наследуется 

Но компьютир может стать потомком квартиры.И тогда его комплектующие смогут обращаться ко всему что есть в квартире как к своему имуществу.. ;) 

Это сообщение отредактировал(а) apook - 5.9.2007, 23:53


--------------------
Мои руки из дуба, голова из свинца ну и пусть ...
PM MAIL   Вверх
JackYF
Дата 6.9.2007, 01:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 2
Всего: 162



Цитата(apook @  5.9.2007,  23:38 Найти цитируемый пост)
Но компьютир может стать потомком квартиры.И тогда его комплектующие смогут обращаться ко всему что есть в квартире как к своему имуществу.. ;) 

гы. а если там (в классе Квартира) был private-доступ? тогда фиг ;)


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
apook
Дата 6.9.2007, 06:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 794
Регистрация: 12.7.2006

Репутация: 10
Всего: 23



Цитата(JackYF @  6.9.2007,  01:48 Найти цитируемый пост)
а если там (в классе Квартира) был private-доступ?
ааа конечно ты знал...
а друзья?  будет ли класс-друг считаться потомком?


Это сообщение отредактировал(а) apook - 6.9.2007, 06:47


--------------------
Мои руки из дуба, голова из свинца ну и пусть ...
PM MAIL   Вверх
JackYF
Дата 6.9.2007, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 2
Всего: 162



Цитата(apook @  6.9.2007,  06:44 Найти цитируемый пост)
будет ли класс-друг считаться потомком?

 smile чтоб я рожал своего друга...  smile 


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Fantasist
Дата 6.9.2007, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй
***


Профиль
Группа: Участник Клуба
Сообщений: 1517
Регистрация: 24.3.2002

Репутация: 2
Всего: 41



А че там, наследование всегда можно ввинтить создав общий предок - типа CObject. Объект типа. Ну можно еще повыпендриваться. 
Например

Код


       CObject
            |
      CPrintable  { virtual print(); }
       /          \
      /            ---------------------\
CHuman                                CWorkOrganization 
 sex,                                           workers: list of CHumans   //работники
 age,                                           name
 children,                                      print(); //печатает лист работников через CHuman::print();
 mart_status//одинок или нет                      | 
 print(); // выводит                              | 
    |       //все параметры                       |
    |                                             | 
    |                                             | 
CTeacher                                       CKafedra //если подумать, то можно что нибудь 
 stadge //забыл как "стаж"                              //специально для кафедры придумать 
             //по англиский                             //Например создать в CWorkOrganization 
 print(); //вызывает CHuman::print()                    //виртуальный метод addworker и перекрыть его в
            //и добавляет стаж                          //CKafedra, проверяя, чтобы добавлялись только учителя.



   Так что главное фантазия и широкое мышление, можно вполне что-то разумное сделать. smile

Это сообщение отредактировал(а) Fantasist - 6.9.2007, 11:16


--------------------
Волны гасят ветер...
PM MAIL   Вверх
Rockie
Дата 6.9.2007, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 23.4.2006

Репутация: 13
Всего: 31



Цитата(JackYF @  5.9.2007,  22:57 Найти цитируемый пост)
 Если я принес в квартиру комп

Квартира и комп - это композиция. Квартира _содержит_ компьютер, но компьютер _не является_ квартирой. "Является ли?" и "Содержит ли?" этих вопросов обычно должно хватать чтобы отделить наследование от композиции.




--------------------
Чтобы иметь большой гардероб - надо иметь большой гардероб.
PM   Вверх
sentry
Дата 6.9.2007, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Code Monkey
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 29.1.2007
Где: Москва

Репутация: 4
Всего: 10



Цитата(apook @  5.9.2007,  19:38 Найти цитируемый пост)
кафедра это не преподаватель, а вот преподаватель как-раз кафедра!

Отличаем наследование от композиции(делегирования), ага? Интересно, как это преподаватель унаследует от кафедры св-ва, присущие только кафедре  smile 
PM MAIL   Вверх
Xenon
Дата 6.9.2007, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1529
Регистрация: 12.4.2006

Репутация: 19
Всего: 50



JackYF, ну просто есть абстрактно термин НАСЛЕДОВАНИЕ. Оно бывает разным. Классическое наследование IS A - это, с последующим отношением тип/субтип. А бывает наследование включением - HAS A, когда ты что имеешь. Но все это же общим словом наследованием именуется.


--------------------
user posted image  
PM MAIL   Вверх
JackYF
Дата 6.9.2007, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 2
Всего: 162



Цитата(Rockie @  6.9.2007,  13:00 Найти цитируемый пост)
Квартира и комп - это композиция. Квартира _содержит_ компьютер, но компьютер _не является_ квартирой. "Является ли?" и "Содержит ли?" этих вопросов обычно должно хватать чтобы отделить наследование от композиции.

Ну дык а я о чем smile

Цитата(Xenon @  6.9.2007,  15:54 Найти цитируемый пост)
Но все это же общим словом наследованием именуется. 

у меня режет язык, мозги и всё что угодно от такой трактовки... можно ссылку, где оно так именуется?



--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
apook
Дата 6.9.2007, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 794
Регистрация: 12.7.2006

Репутация: 10
Всего: 23



Цитата(sentry @  6.9.2007,  15:04 Найти цитируемый пост)
 Интересно, как это преподаватель унаследует от кафедры св-ва, присущие только кафедре

Да как раз смысл не важен можно даже не компьютер а дорога причем она-ж не в квартире а ведь будет наследовать напишешь:
Код

class дорога : public квартира

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



--------------------
Мои руки из дуба, голова из свинца ну и пусть ...
PM MAIL   Вверх
sentry
Дата 6.9.2007, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Code Monkey
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 29.1.2007
Где: Москва

Репутация: 4
Всего: 10



Цитата(apook @  6.9.2007,  18:41 Найти цитируемый пост)
Да как раз смысл не важен можно даже не компьютер а дорога причем она-ж не в квартире а ведь будет наследовать напишешь:

Да наследовать-то будет. Только не надо так делать. Нехорошо это  smile 

Цитата(JackYF @  6.9.2007,  18:26 Найти цитируемый пост)
можно ссылку, где оно так именуется?

Вроде Троелсен (правда С#, но это не суть важно).
PM MAIL   Вверх
Fantasist
Дата 6.9.2007, 20:26 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй
***


Профиль
Группа: Участник Клуба
Сообщений: 1517
Регистрация: 24.3.2002

Репутация: 2
Всего: 41



Цитата(Xenon @  6.9.2007,  12:54 Найти цитируемый пост)
JackYF, ну просто есть абстрактно термин НАСЛЕДОВАНИЕ. Оно бывает разным. Классическое наследование IS A - это, с последующим отношением тип/субтип. А бывает наследование включением - HAS A, когда ты что имеешь. Но все это же общим словом наследованием именуется. 


  Да ну фигня какая. Выбрось те источники где так именуется. Это так совершенно можно запутаться. Все таки нормально различают наследование и композицию. Наследование - это создание подтипа, композиция - это просто отдельный тип с включенными объектами. И это достадочно разные разные подходы, несмотря на то, что при полном делегированнии включенных объектов по использованию это не будет отличатся от наследования (правда в этом случае, возможно, множественного, что тоже не во всех языках реализуемо). А вообще есть еще термин агрегирование, который по сути мало чем отличим от композиции, в распостранненом понимани, как я понял. Некоторые источники говорят, что при композоции время жизни объектов жестко привязванно, а при агрегации нет.  То есть при композиции главные является хозяином всех включенных объектов, а пре агрегировании они могут добавлятся и убираться от туда свободно. Правда в моей практике, случае везде где я встречал  агрегацию, она совершенно не отличались от композиции. Так что я вообще привык это агрегацией называть.
   Некоторые опять же утверждают, что если объект содержит вектор других объектов, то это тоже агрегация. А по мне так это типичный контейнер. Для меня агрегация так же как и композиция - это отношение один к одному. 
  Короче, терминология и так запутанна, не надо ее еще больше запутывать называя все наследованием. smile

Добавлено через 2 минуты и 42 секунды
О кстати! Глянте сюда: http://en.wikipedia.org/wiki/Composite_pattern#Example

Оказывается тот пример, что я написал предыдущим постингом один в один Composite pattern. smile

Добавлено через 3 минуты и 48 секунд
Вот как много можно сделать из обыкновенной туповатой школьной задачи. smile


--------------------
Волны гасят ветер...
PM MAIL   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.1048 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.