![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Gunslinger |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 30.12.2006 Где: Астрахань Репутация: 1 Всего: 3 |
т.е. они - не следствие введения ООП, а следствие увеличения ошибок в коде из-за усложняющихся проектов?
это тоже есть. Добавлено через 2 минуты и 41 секунду
ок. повтыкаю как время будет |
||||
|
|||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Они - особенности реализации языка С++. Имеют отдаленное отношение к инкапсуляции (позволяют скрыть детали реализации от пользователя класса) Возможны и другие методы реализации инкапсуляции |
|||
|
||||
| Gunslinger |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 30.12.2006 Где: Астрахань Репутация: 1 Всего: 3 |
xvr, что значит особенности? "Мы так захотели" или "На то были причины"?
|
|||
|
||||
| Gunslinger |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 30.12.2006 Где: Астрахань Репутация: 1 Всего: 3 |
Я об этом же. В результате напоминания zim22 пришел к выводу, что модификаторы доступа - не часть ООП, а следствие ООП, так сказать его поддержка. Т.е. эволюционный процесс: программы разрастались, взаимосвязи усложнялись. В итоге придумали ООП. Разрабатывать и писать стало проще, однако человеческий фактор никуда не делся: изменение значений переменных чужих объектов, в результате - их некорректная работа. Так же с доступами к чужим наследникам и наследников друг к другу. Это сообщение отредактировал(а) Gunslinger - 30.9.2009, 18:17 |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
||||
|
||||
| Gunslinger |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 30.12.2006 Где: Астрахань Репутация: 1 Всего: 3 |
||||
|
||||
| Gunslinger |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 30.12.2006 Где: Астрахань Репутация: 1 Всего: 3 |
mes, я не пойму, я непонятно написал перед твоим постом или ты не читал?
|
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Скорее 'так получилось' |
|||
|
||||
| mes |
|
||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
читал, и именно поэтому написал ниже пост. Пост писался, не для уточнения того, что модификаторы относятся к реализации, а то что реализации "одного и того же" ООП могут очень сильно различаться. Это связано как с особенностями самого языка, так и со взглядом авторов на ООП, быть может есть еще и другие причины.
Я так понял, что Вы говорите, что вначале внедрили ООП в язык, а потом, вследствии людского фактора, добавили туда модификаторы доступа. хотя в принципе и отражает реальность, но мне кажется потеряна суть происходившего. имхо лучше так : было известно что надо добиться инкапсуляции объекта, но в связи с особенностями C++ решили для достижения этой и некоторых других целей, использовать модификаторы доступа. Вполне могли поступить по-другому, например, считать все содержимое класса приватным, а доступность открывалась бы через интерфейсы. P.S. вышесказанное приведено в грубом упрощении. Это сообщение отредактировал(а) mes - 30.9.2009, 20:51 |
||||
|
|||||
| Gunslinger |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 30.12.2006 Где: Астрахань Репутация: 1 Всего: 3 |
Да, именно так. Далее вы привели еще один вариант. В итоге получилось 2 хронологических варианта: 1. Модификаторы ввели после ООП, для уменьшения ошибок доступа. 2. Модификаторы ввели вместе с ООП. Как я понял по вашему предположению - для поддержки реализации ООП. Во втором варианте мне непонятно, было ли введение модификаторов "теоретической" причиной (ООП - на бумаге и дальнейшие размышления) или "практической" (наблюдение за разработкой ПО и фиксация ошибок, вызванных использованием ООП), или и то, и другое. Может быть это уже такой тонкий нюанс, который не нужен для интуитивного понимания модификаторов и ООП, но почитать об этом было бы любопытно. Мне по крайней мере. Интересно, есть ли вообще подобная "стенография" развития ООП. Это сообщение отредактировал(а) Gunslinger - 1.10.2009, 08:24 |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
Есть еще третий вариант, модификаторы появились до того, как язык получил более менее полную подержку ООП
Бьерн Страуструп - Дизайн и Эволюция C++ |
|||
|
||||
| Gunslinger |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 30.12.2006 Где: Астрахань Репутация: 1 Всего: 3 |
||||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
Ну смотря что именно подразумевать под этим вопросом- там в общих чертах, расказывается почему выбрана такая модель защиты.. Ну а если интересует именно хронология, то если мне не изменяет память, модель защиты появилась в языке изначально, т.е за 3 года до появления виртуальных функций (после включения подержки которых и было заявлено о поддержке языком ООП) и первого употребления названия "C++" для этого языка.. Это сообщение отредактировал(а) mes - 1.10.2009, 11:33 |
|||
|
||||
| Gunslinger |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 30.12.2006 Где: Астрахань Репутация: 1 Всего: 3 |
То есть модификаторы все-таки не следствие ООП (вариант 1)? Вы про предшественник с++ говорите? |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
Да, прообразом "C++" послужил "С с классами" нет, так получилось, что они его предшественники более того вначале люди поняли что, в частности, инкапсуляция это хорошо, а уж потом сформировали постулаты ООП. ну и главное то, что модификаторы доступа вообще не имеют прямой связи с ООП, как может быть ООП без этих модификаторов, так и модификаторы без ООП. Это сообщение отредактировал(а) mes - 2.10.2009, 11:55 |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |