Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.192] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 49 50 [51] 52 53 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#751
,
|
|
|
|
Цитата korvin @ Каждый язык, прямо или коственно поддерживает ООП. Вопрос только как именно поддерживает. С++ имеет некую объектную модель, позволяющую покрыть не всю, конечно, но бОльшую часть потребностей, возникающих при ООП проектировании на уровне объявления. Всё то же самое можно реализовать и в С, процедурами, указателями и модулями. Но на уровне реализации. В делфи тоже есть некая объектная система, но элементарная защита объекта реализуется почему то сишными способами. так а при чем тут процедурный подход? как буд-то ООП -- это панацея, всегда предоставляющая одно единственно верное решение |
|
Сообщ.
#752
,
|
|
|
|
Цитата D_KEY @ Как минимим, нужно или заствлять клиента явно удалять копии, или использовать обертки, которые не предоставляют удобного доступа к объекту. 1) кто удалит копию? если обертка, то какой интерфейс она предоставляет клиенту и что ему придется об этом знать? Пойдут ли на это программисты? 2) каким образом? 3) тогда потеряем возможность модифицировать его внутри TRect. 1) да хоть owner, Inc же писал способы, и CodeMonkey в соседней теме не раз упоминал InterfacedObject 2) ![]() ![]() property Left read Point.X; property Top read Point.Y; вместо возврата точки. заодно и обращение короче. 3) нет, ведь мы можем присвоить полю новый объект-точку вместо старой. Добавлено Цитата Повстанець @ Каждый язык, прямо или коственно поддерживает ООП. Вопрос только как именно поддерживает. С++ имеет некую объектную модель, позволяющую покрыть не всю, конечно, но бОльшую часть потребностей, возникающих при ООП проектировании на уровне объявления. Всё то же самое можно реализовать и в С, процедурами, указателями и модулями. Но на уровне реализации. В делфи тоже есть некая объектная система, но элементарная защита объекта реализуется почему то сишными способами. а const -- это ппц какой оопшный способ? а защита объекта делается в делфи обычным оопшным способом -- инкапсуляцией |
|
Сообщ.
#753
,
|
|
|
|
Цитата korvin @ Во всяком случае один из способов. В обїектную модель тоже вписуется довольно неплохо.а const -- это ппц какой оопшный способ? Цитата korvin @ Не поверишь... В С++ защита тоже делается инкапсуляцией. И в С тоже. И на бейсике. Вопрос только -- какой ценой даётся инкапсуляция. а защита объекта делается в делфи обычным оопшным способом -- инкапсуляцией |
|
Сообщ.
#754
,
|
|
|
|
Цитата korvin @ а защита объекта делается в делфи обычным оопшным способом -- инкапсуляцией Инкапсуляция не решает задач const - добавить к объекту контекст гарантирующий или нет неизменность состояния объекта. Инкапсуляция решает задачу разделения доступа к объекту |
|
Сообщ.
#755
,
|
|
|
|
Цитата Повстанець @ Во всяком случае один из способов. В обїектную модель тоже вписуется довольно неплохо. и как ООП определяет этот механизм? |
|
Сообщ.
#756
,
|
|
|
|
Если объект куда-то передается параметром, то требовать его неизменности глупо, зачем передаешь тогда спрашивается? Нужно чтобы объект не трогали - так передавай не сам объект, а его параметры. Это единственный способ что-то гарантировать, остальные - это чисто полагаться на совесть разработчика
|
|
Сообщ.
#757
,
|
|
|
|
Цитата Мяут-Настоящий @ Инкапсуляция не решает задач const - добавить к объекту контекст гарантирующий или нет неизменность состояния объекта. угу, вот так взяли и одним махом изменили интерфейс объекта, описанный в его классе. |
|
Сообщ.
#758
,
|
|
|
|
Цитата korvin @ Как ограничение допустимых операций.и как ООП определяет этот механизм? Цитата --Ins-- @ забыл добавить "в делфи". Если объект куда-то передается параметром, то требовать его неизменности глупо, зачем передаешь тогда спрашивается? Нужно чтобы объект не трогали - так передавай не сам объект, а его параметры. Это единственный способ что-то гарантировать, остальные - это чисто полагаться на совесть разработчика |
|
Сообщ.
#759
,
|
|
|
|
Цитата Мяут-Настоящий @ Инкапсуляция решает задачу разделения доступа к объекту ![]() не разделения, а ограничения. и не к объекту, а к его внутренней структуре. |
|
Сообщ.
#760
,
|
|
|
|
Цитата Повстанець @ забыл добавить "в делфи". Не забыл |
|
Сообщ.
#761
,
|
|
|
|
Цитата Повстанець @ Как ограничение допустимых операций можно ссылку на источник (литературу/статью)? |
|
Сообщ.
#762
,
|
|
|
|
Цитата --Ins-- @ Цитата Повстанець @ забыл добавить "в делфи". Не забыл Странно. Я не вижу. Добавлено Цитата korvin @ Можешь ссылаться на меня. Если у тебя есть другое определение константности объекта, с удовольствием его послушаю. можно ссылку на источник (литературу/статью)? |
|
Сообщ.
#763
,
|
|
|
|
Цитата Повстанець @ Можешь ссылаться на меня. Если у тебя есть другое определение константности объекта, с удовольствием его послушаю. меня интересует, как теория ООП(ну или известная литература/специалисты по ООП) определяют механизм, изменяющий интерфейс объекта (и видимо всех его членов-объектов). таков был вопрос вообще-то. |
|
Сообщ.
#764
,
|
|
|
|
Цитата korvin @ Какая теория ООП? Программирование стало академической наукой? Где я был в это время? Нет никакой теории. Ести ИМХО отдельных специалистов. Ты конечно хочешь мне намекнуть, что такого понятия, как константный объект нет. Но ведь константные объекты есть, а понятия нет. Как так получается? Если его действительно нет -- считай меня пионером и можешь смело ссылаться. меня интересует, как теория ООП(ну или известная литература/специалисты по ООП) определяют механизм, изменяющий интерфейс объекта (и видимо всех его членов-объектов) |
|
Сообщ.
#765
,
|
|
|
|
Цитата korvin @ угу, вот так взяли и одним махом изменили интерфейс объекта, описанный в его классе. Ээээ, наоборот, конкретизировали: ![]() ![]() class C { public: int f() const { //Здесь гарантируется, что объект неизменен } }; |