|
|
  |
ООП. мелкие вопросы. |
|
|
|
May 7 2012, 06:41
|

Частый гость
 
Группа: Свой
Сообщений: 103
Регистрация: 17-05-09
Из: Ижевск
Пользователь №: 49 190

|
Собственно, обращаюсь к знающим людям, поскольку еще на первых порах с С++ не могу понять краеугольные камни ООП. И так, допустим, имеем базовый класс : Код class base { private: int priv; protected: int prot; public: int pub; }; выводим из него производный класс: Код class derived:public base { private: priv_de; protected: prot_de; public: pub_de; }; А теперь внимание вопросы: 1.имеется ли доступ к private-членам базового класса из производного? 2.если производный класс наследуется как private, то public-члены базового становятся недоступными для производного и становятся его public членами? например член priv (тот, что в секции private объявлен базового класса) в классе derived будет приравнен к его public-членам и будет виден в дальнейшей иерархии классов? 3.Доступ к protected-членам имеется во всей иерархии классов (допустим base->derived1->derived3->derivedN, в этом самом N я могу использовать protected члены базового класса?)? 4. Правильно ли я понимаю, что в методах производного класса могу использовать методы базового класса? прим: Код class base { public: void method_base(void){cout << "Fuck it!";}; };
clase derived:public base { public: void show_fuck_it(void){method_base();}; };
--------------------
Шизоидный холерик
|
|
|
|
|
May 7 2012, 07:00
|
Гуру
     
Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847

|
Цитата(Marto @ May 7 2012, 10:41)  1.имеется ли доступ к private-членам базового класса из производного? Нет Цитата 2.если производный класс наследуется как private, то public-члены базового становятся недоступными для производного и становятся его public членами? например член priv (тот, что в секции private объявлен базового класса) в классе derived будет приравнен к его public-членам и будет виден в дальнейшей иерархии классов? Нет. При private наследовании члены public и protected из родительского класса станут private для наследника, и их ни в каких дальнейших наследниках уже использовать не удасться Цитата 3.Доступ к protected-членам имеется во всей иерархии классов (допустим base->derived1->derived3->derivedN, в этом самом N я могу использовать protected члены базового класса?)? Да. (Хотя есть нюансы) Цитата 4. Правильно ли я понимаю, что в методах производного класса могу использовать методы базового класса? Да, но только те, которые доступны (public и protected)
|
|
|
|
|
May 11 2012, 09:12
|
практикующий тех. волшебник
    
Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417

|
Цитата(Marto @ May 7 2012, 11:15)  Спасибо.... только к ООП это имеет мягко говоря слаааааабое отношение... ООП - Объектно Ориентированное Проектирование. Заметьте, проектирование. Т.е. до программирования как до китая ползком на карачках вперёд попой... на каком языке реализовывать - дело двадцать пятое. Более того скажу - если Вы воспринимаете решение задач как абстрактные рассуждения о классах - то это тупик. Рекомендую почитать одного из основоположников данной технологии решения задач - Гради Буча. Всё доходчиво, и понятно. Именно отвечает на впрос "как перейти от задачи к программированию". удачи вам (круглый)
|
|
|
|
|
May 11 2012, 13:12
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
QUOTE (kolobok0 @ May 11 2012, 16:12)  только к ООП это имеет мягко говоря слаааааабое отношение...
ООП - Объектно Ориентированное Проектирование. Заметьте, проектирование. Т.е. до программирования как до китая ползком на карачках вперёд попой... Спросил у гугла. Ни одного слова "проектирование" на странице нету. Ну, и далее. ООП - самое что ни на есть натуральное программирование. Проектирование тоже сюда входит, но это более узкое понятие.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
May 11 2012, 13:18
|
Гуру
     
Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322

|
Цитата(dxp @ May 11 2012, 16:12)  Ну, и далее. ООП - самое что ни на есть натуральное программирование. А если без далее: ООП. Термин О.О. проектирование тоже существует...
|
|
|
|
|
May 12 2012, 03:32
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
QUOTE (_Артём_ @ May 11 2012, 20:18)  А если без далее: ООП. Термин О.О. проектирование тоже существует... ООП - устоявшийся термин и в 99% случаев однозначно определяет именно программирование. Объектно-ориентированное проектирование тоже имеет место (как часть процесса программирования), но никогда нигде не встречал, чтобы его обозначали аббревиатурой ООП.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
May 12 2012, 10:01
|
практикующий тех. волшебник
    
Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417

|
Цитата(dxp @ May 12 2012, 07:32)  ООП - устоявшийся термин и в 99% случаев однозначно определяет... (устало) Вы наверное и ООА не в курсе что это такое??? устоялось у кого? У людей которые никогда книги основоположников ОбъектноОриентированной методики не читали? да это повсеместно есть к сожалению. это как в забытые времена всё что связывалось по сети обзывалось клиент-серверным  )) типа, хорошая клиент-серверная программа питер нортон. Замечательно юзает файловую службу сервиса.. ага...  )) удачи вам (круглый) ЗЫ Собственно бох с ними с терминами. Главное желание бы ло бы докапыватся до истины...  )) Цитата(dxp @ May 11 2012, 17:12)  ...Спросил у гугла...Ни одного слова "проектирование" на странице нету.... Вы просто не умеете их готовить... Гради БучЭто собственно один из основателей. Рекомендую почитать, и стэп бай стэп хоть ОДИН раз применить. Особенно очень актуально , если разработка ведётся более чем одним разработчиком. Эта методика единственная на сегоднешний момент времени(поправте если есть у вас другая инфа) которая даёт ответ на вопрос, а как собственно перейти от конкретной задаче к коду. Вот именно это она и описывает. А какой язык применять после всего этого - дело двадцать пятое. я например частенько юзаю и азм в частности. могу и си бимоль, могу и плас-плас или скажем фортран..смотря по задаче собственно говоря... Если Вы видите связь ОО только с наследием, полиморфностью и иже терминами - то увы это ОЧЕНЬ маааааааленькая часть всего пирога... удачи вам (круглый)
Сообщение отредактировал kolobok0 - May 12 2012, 10:05
|
|
|
|
|
May 12 2012, 11:25
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
QUOTE (kolobok0 @ May 12 2012, 17:01)  (устало) Вы наверное и ООА не в курсе что это такое??? Ещё какие термины знаете, не относящиеся к делу? А устали - отдохните. QUOTE (kolobok0 @ May 12 2012, 17:01)  устоялось у кого? У людей которые никогда книги основоположников ОбъектноОриентированной методики не читали? Читали, читали, не вы один грамотный. QUOTE (kolobok0 @ May 12 2012, 17:01)  это как в забытые времена всё что связывалось по сети обзывалось клиент-серверным  )) типа, хорошая клиент-серверная программа питер нортон. Замечательно юзает файловую службу сервиса.. ага...  )) А это-то тут причём? Поток сознания какой-то, извините. QUOTE (kolobok0 @ May 12 2012, 17:01)  Вы просто не умеете их готовить... Да, никто не умеет, один вы являетесь, судя по всему, уникальным носителем сакральных знаний. QUOTE (kolobok0 @ May 12 2012, 17:01)  Это собственно один из основателей. К Бучу не надо отсылать, этот источник был изучен ещё лет 12 назад. Объектно-ориентированное программирование и средства его поддержки появились задолго до этого труда Г.Буча. Собственно, заслуга Г.Буча в том, что он изложил тему с акцентом на этап проектирования, показал методологию. И анализ, и проектирование являются составной частью процесса программирования, которое помимо этого включает в себя и другие части (другие парадигмы, кодирование и т.п.).
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
May 12 2012, 11:50
|
практикующий тех. волшебник
    
Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417

|
Цитата(dxp @ May 12 2012, 15:25)  Ещё какие термины знаете, не относящиеся к делу?... "к делу" оно (ООА) относится наипервейшим образом. потому как всегда впереди на лихом коне. потому как Анализ. Возможно вы не так это понимаете, но хотите вы этого или нет - перед тем как приступить к программированию ВСЕГДА идёт анализ. Он может быть молнеиносным (типа о! знаю как. особенно если в одной голове). Он может быть по уму (например в группе единомышленников - создаются сущности и проигрываются их роли, взаимодействия и т.д. и т.п.). Это может быть по глупому - а нахрена тут думать - пилить надо. Хватить фигнёй страдать!!! Ну и когда челолвек десять потом чертыхаясь: ну и кто эту фигню писал?! как вызвать у парента метод гав? давайте всё начнём заново! или я не буду это юзать, потому как!!! и т.д. (проблемы которые усиливаются при этом - много. можем кстати и про поговорить, если хотите).. Это кстати практически во всех конторах есть. и к сожалению лично я видел единицы фирм по производству софта. всем остальным при случае говорил мягко - это не ваш бизнес... не мучьте ся и пользователей... а пользователей, лично мне очень жалко кстати.. они просто не видят хорошего софта зачастую...оно конечно же даёт бонусы - не привередлив клиент, но как в том мультике: везение, везением - но надо жешь и уметь! Цитата(dxp @ May 12 2012, 15:25)  Да, никто не умеет, один вы являетесь, судя по всему, уникальным носителем сакральных знаний. да бох с вами. я с удовольствием расскажу, покажу если есть желание. более того - готов всегда! (як пионэр)  к диалогу. к любому... Цитата(dxp @ May 12 2012, 15:25)  ...Собственно, заслуга Г.Буча в том,...показал методологию... вот вы же принципиально со мной согласны если так говорите! или очепятались? кстати он один из авторов(возможно и только он - щас уже не помню) - UML. Рэйшенел Роуз думаю знаете...  удачи вам (круглый)
|
|
|
|
|
May 12 2012, 12:21
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
QUOTE (kolobok0 @ May 12 2012, 18:50)  вот вы же принципиально со мной согласны если так говорите! или очепятались? Я возражал лишь против того, что термин ООП обозначает проектирование, а не программирование. Мой опыт и вся окружающая информация на эту тему (про этот термин) утверждают, что ООП - это таки программирование. И ещё, повторяю, ПМСМ, анализ и проектирование являются составными неотъемлемыми частями [процесса] программирования, поэтому, в частности, тоже входят в ООП, хотя это не делает ООП [только лишь] проектированием.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
May 30 2012, 09:23
|

Профессионал
    
Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045

|
Цитата ООП - Объектно Ориентированное Проектирование. Заметьте, проектирование. Т.е. до программирования как до китая ползком на карачках вперёд попой... довольно грубо, причем kolobok0 тут не прав. имхо. Цитата ...Спросил у гугла...Ни одного слова "проектирование" на странице нету.... +1. Как говориться, без комментариев. Цитата Вы просто не умеете их готовить... встретив..... допустим незнакомую аббревиатуру "ООП" не спеши в гугл вбивать "ООП", вбивай " гради буч объектно-ориентированный анализ и проектирование" *ЗАПЕСАЛ* ps очевидно, что у ооп много значений. Почему кто-то решил что тут она означает "проектирование" ..... можно сказать "ООП - Организация освобождения Палестины. Заметьте, Палестины. Т.е. до программирования как до китая ползком на карачках вперёд попой..."
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|