реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> ООП. мелкие вопросы.
Marto
сообщение May 7 2012, 06:41
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 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();};
};


--------------------
Шизоидный холерик
Go to the top of the page
 
+Quote Post
XVR
сообщение May 7 2012, 07:00
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 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)
Go to the top of the page
 
+Quote Post
Marto
сообщение May 7 2012, 07:15
Сообщение #3


Частый гость
**

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



Спасибо. rolleyes.gif


--------------------
Шизоидный холерик
Go to the top of the page
 
+Quote Post
kolobok0
сообщение May 11 2012, 09:12
Сообщение #4


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(Marto @ May 7 2012, 11:15) *
Спасибо....


только к ООП это имеет мягко говоря слаааааабое отношение...

ООП - Объектно Ориентированное Проектирование. Заметьте, проектирование. Т.е. до программирования как до китая ползком на карачках вперёд попой... на каком языке реализовывать - дело двадцать пятое. Более того скажу - если Вы воспринимаете решение задач как абстрактные рассуждения о классах - то это тупик. Рекомендую почитать одного из основоположников данной технологии решения задач - Гради Буча. Всё доходчиво, и понятно. Именно отвечает на впрос "как перейти от задачи к программированию".

удачи вам
(круглый)
Go to the top of the page
 
+Quote Post
kurtis
сообщение May 11 2012, 09:22
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 466
Регистрация: 21-06-05
Пользователь №: 6 205



Возможно автору будет полезная эта ссылка http://alenacpp.blogspot.com/2006/03/blog-post_11.html
Go to the top of the page
 
+Quote Post
dxp
сообщение May 11 2012, 13:12
Сообщение #6


Adept
******

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



QUOTE (kolobok0 @ May 11 2012, 16:12) *
только к ООП это имеет мягко говоря слаааааабое отношение...

ООП - Объектно Ориентированное Проектирование. Заметьте, проектирование. Т.е. до программирования как до китая ползком на карачках вперёд попой...

Спросил у гугла. Ни одного слова "проектирование" на странице нету.

Ну, и далее. ООП - самое что ни на есть натуральное программирование. Проектирование тоже сюда входит, но это более узкое понятие.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
_Артём_
сообщение May 11 2012, 13:18
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(dxp @ May 11 2012, 16:12) *
Ну, и далее. ООП - самое что ни на есть натуральное программирование.

А если без далее:ООП.
Термин О.О. проектирование тоже существует...

Go to the top of the page
 
+Quote Post
ReAl
сообщение May 11 2012, 15:38
Сообщение #8


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Только «там» применяется в виде OOD (o. o. design), а «тут» многие не переводят «design» как «проектирование», а так «дизайн» и говорят.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
dxp
сообщение May 12 2012, 03:32
Сообщение #9


Adept
******

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



QUOTE (_Артём_ @ May 11 2012, 20:18) *
А если без далее:ООП.
Термин О.О. проектирование тоже существует...

ООП - устоявшийся термин и в 99% случаев однозначно определяет именно программирование. Объектно-ориентированное проектирование тоже имеет место (как часть процесса программирования), но никогда нигде не встречал, чтобы его обозначали аббревиатурой ООП.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
kolobok0
сообщение May 12 2012, 10:01
Сообщение #10


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(dxp @ May 12 2012, 07:32) *
ООП - устоявшийся термин и в 99% случаев однозначно определяет...


(устало) Вы наверное и ООА не в курсе что это такое???

устоялось у кого? У людей которые никогда книги основоположников ОбъектноОриентированной методики не читали? да это повсеместно есть к сожалению. это как в забытые времена всё что связывалось по сети обзывалось клиент-серверным sm.gif)) типа, хорошая клиент-серверная программа питер нортон. Замечательно юзает файловую службу сервиса.. ага... sm.gif))


удачи вам
(круглый)
ЗЫ
Собственно бох с ними с терминами. Главное желание бы ло бы докапыватся до истины... sm.gif))


Цитата(dxp @ May 11 2012, 17:12) *
...Спросил у гугла...Ни одного слова "проектирование" на странице нету....



Вы просто не умеете их готовить...

Гради Буч


Это собственно один из основателей. Рекомендую почитать, и стэп бай стэп хоть ОДИН раз применить. Особенно очень актуально , если разработка ведётся более чем одним разработчиком. Эта методика единственная на сегоднешний момент времени(поправте если есть у вас другая инфа) которая даёт ответ на вопрос, а как собственно перейти от конкретной задаче к коду. Вот именно это она и описывает. А какой язык применять после всего этого - дело двадцать пятое. я например частенько юзаю и азм в частности. могу и си бимоль, могу и плас-плас или скажем фортран..смотря по задаче собственно говоря... Если Вы видите связь ОО только с наследием, полиморфностью и иже терминами - то увы это ОЧЕНЬ маааааааленькая часть всего пирога...


удачи вам
(круглый)

Сообщение отредактировал kolobok0 - May 12 2012, 10:05
Go to the top of the page
 
+Quote Post
dxp
сообщение May 12 2012, 11:25
Сообщение #11


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) *
это как в забытые времена всё что связывалось по сети обзывалось клиент-серверным sm.gif)) типа, хорошая клиент-серверная программа питер нортон. Замечательно юзает файловую службу сервиса.. ага... sm.gif))

А это-то тут причём? Поток сознания какой-то, извините.

QUOTE (kolobok0 @ May 12 2012, 17:01) *
Вы просто не умеете их готовить...

Да, никто не умеет, один вы являетесь, судя по всему, уникальным носителем сакральных знаний.

QUOTE (kolobok0 @ May 12 2012, 17:01) *
Это собственно один из основателей.

К Бучу не надо отсылать, этот источник был изучен ещё лет 12 назад. Объектно-ориентированное программирование и средства его поддержки появились задолго до этого труда Г.Буча. Собственно, заслуга Г.Буча в том, что он изложил тему с акцентом на этап проектирования, показал методологию. И анализ, и проектирование являются составной частью процесса программирования, которое помимо этого включает в себя и другие части (другие парадигмы, кодирование и т.п.).


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
kolobok0
сообщение May 12 2012, 11:50
Сообщение #12


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(dxp @ May 12 2012, 15:25) *
Ещё какие термины знаете, не относящиеся к делу?...


"к делу" оно (ООА) относится наипервейшим образом. потому как всегда впереди на лихом коне. потому как Анализ. Возможно вы не так это понимаете, но хотите вы этого или нет - перед тем как приступить к программированию ВСЕГДА идёт анализ. Он может быть молнеиносным (типа о! знаю как. особенно если в одной голове). Он может быть по уму (например в группе единомышленников - создаются сущности и проигрываются их роли, взаимодействия и т.д. и т.п.). Это может быть по глупому - а нахрена тут думать - пилить надо. Хватить фигнёй страдать!!! Ну и когда челолвек десять потом чертыхаясь: ну и кто эту фигню писал?! как вызвать у парента метод гав? давайте всё начнём заново! или я не буду это юзать, потому как!!! и т.д. (проблемы которые усиливаются при этом - много. можем кстати и про поговорить, если хотите).. Это кстати практически во всех конторах есть. и к сожалению лично я видел единицы фирм по производству софта. всем остальным при случае говорил мягко - это не ваш бизнес... не мучьте ся и пользователей... а пользователей, лично мне очень жалко кстати.. они просто не видят хорошего софта зачастую...оно конечно же даёт бонусы - не привередлив клиент, но как в том мультике: везение, везением - но надо жешь и уметь!

Цитата(dxp @ May 12 2012, 15:25) *
Да, никто не умеет, один вы являетесь, судя по всему, уникальным носителем сакральных знаний.

да бох с вами. я с удовольствием расскажу, покажу если есть желание. более того - готов всегда! (як пионэр) sm.gif к диалогу. к любому...

Цитата(dxp @ May 12 2012, 15:25) *
...Собственно, заслуга Г.Буча в том,...показал методологию...

вот вы же принципиально со мной согласны если так говорите! или очепятались? кстати он один из авторов(возможно и только он - щас уже не помню) - UML. Рэйшенел Роуз думаю знаете... sm.gif

удачи вам
(круглый)
Go to the top of the page
 
+Quote Post
dxp
сообщение May 12 2012, 12:21
Сообщение #13


Adept
******

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



QUOTE (kolobok0 @ May 12 2012, 18:50) *
вот вы же принципиально со мной согласны если так говорите! или очепятались?

Я возражал лишь против того, что термин ООП обозначает проектирование, а не программирование. Мой опыт и вся окружающая информация на эту тему (про этот термин) утверждают, что ООП - это таки программирование. И ещё, повторяю, ПМСМ, анализ и проектирование являются составными неотъемлемыми частями [процесса] программирования, поэтому, в частности, тоже входят в ООП, хотя это не делает ООП [только лишь] проектированием.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
juvf
сообщение May 30 2012, 09:23
Сообщение #14


Профессионал
*****

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



Цитата
ООП - Объектно Ориентированное Проектирование. Заметьте, проектирование. Т.е. до программирования как до китая ползком на карачках вперёд попой...
довольно грубо, причем kolobok0 тут не прав. имхо.
Цитата
...Спросил у гугла...Ни одного слова "проектирование" на странице нету....
+1. Как говориться, без комментариев.

Цитата
Вы просто не умеете их готовить...
встретив..... допустим незнакомую аббревиатуру "ООП" не спеши в гугл вбивать "ООП", вбивай "гради буч объектно-ориентированный анализ и проектирование"
*ЗАПЕСАЛ*

ps
очевидно, что у ооп много значений. Почему кто-то решил что тут она означает "проектирование" ..... можно сказать
"ООП - Организация освобождения Палестины. Заметьте, Палестины. Т.е. до программирования как до китая ползком на карачках вперёд попой..."
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение May 30 2012, 18:54
Сообщение #15


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(juvf @ May 30 2012, 15:23) *
"ООП - Организация освобождения Палестины. Заметьте, Палестины. Т.е. до программирования как до китая ползком на карачках вперёд попой..."

Этта пять! lol.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 5th July 2025 - 17:27
Рейтинг@Mail.ru


Страница сгенерированна за 0.01527 секунд с 7
ELECTRONIX ©2004-2016