Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.192] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 44 45 [46] 47 48 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#676
,
|
|
|
|
Тебе эту фразу повторяли неоднократно, причем повторяли люди программирующие одновременно на нескольких языках, не привязываясь к одному конкретному... |
|
Сообщ.
#677
,
|
|
|
|
Вот и наблюдаем еще один пример неадекватности, к которой приводит сочетание ссылочных типов и типов значений в одном языке. Добавлено Цитата --Ins-- @ И не только в Delphi Наверное только в c++ не так Учитывая что все эти языки появились позже и под влиянием c++, взяв из него кое что хорошее и выкинув плохое, делаем вывод что...оказалось слишком много "неосиливших" С++. Это действительно так Кстати, у С++ слишком много недостатков, но обсуждаются почему-то в данных темах не они. Я уже подумываю, для интереса, С++ покритиковать самому. А то как-то скучно. |
|
Сообщ.
#678
,
|
|
|
|
D_KEY, для тебя еще раз, хоть я это уже и писал. В случае
Rect.Points[0].X := где Points[0] - это класс (как и Rect), никакая инкапсуляция не нарушается. Значение X в обход сеттера не меняется. Потому что сеттер свойства Points НЕ ЗАНИМАЕТСЯ отслеживанием изменений ЗНАЧЕНИЯ точки, он вызывается при присвоении ссылки. ЧТО СЛОЖНОГО??? |
|
Сообщ.
#679
,
|
|
|
|
есть =) ты Scheme in 48 hours читал? IORef например. другое дело, что все "мутации" ммм "инкапсулированы" в монаду IO, и втащив значение в монаду, назад его не вернешь. говорят есть еще всякие unsafe*-модули, позволяющие даже вытаскивать из монады чистое значение (вот это уже можно в некотором смысле назвать "оконстаниванием"), но про них я ничего не знаю и вообще, если начал их юзать, то стоит задуматься, зачем тебе вообще Хаскелл =) |
|
Сообщ.
#680
,
|
|
|
|
Цитата --Ins-- @ Очень точное словосочетание в случае, когда ты отказываешься от индексных свойств (и заменяешь их страшно представить чем) потому, что твой инструмент их поддержку должным образом не обеспечивает. Отказываюсь? Чтобы отказаться, надо знать для решения каких задач это нужно. Единственное, что пока услышал, это мегазадача "я так хочу". Я не вижу необходимости в свойствах вообще, а мне тут два индексных пытаются втюхать. Цитата --Ins-- @ Это влияние с++, точно тебе говорю. Там же вроде свойств нет, вот и невозможно теперь программируя в другом языке мыслить его категориями Как странно... но... я программист на C#. Доктор, вы неправильно поставили диагноз, значит, вы какой-то недоучившийся доктор, и дипломчик у вас "левый". |
|
Сообщ.
#681
,
|
|
|
|
Доказательства, пожалуйста. А то за всю тему только подобные неаргументированные выкрики Некрасиво. |
|
Сообщ.
#682
,
|
|
|
|
Цитата --Ins-- @ сеттер свойства Points НЕ ЗАНИМАЕТСЯ отслеживанием изменений ЗНАЧЕНИЯ точки В то время как если бы это была запись - то именно этим бы он и занимался |
|
Сообщ.
#683
,
|
|
|
|
Цитата D_KEY @ Да хоть зачитайся. Состояние объекта описывается, как правило, не самой ссылкой на поле, а именно значением поля, хотя объект и содержит ссылку. Если С++ позволяет запретить такие изменения, то Delphi - нет. В результате порождаем лишнии копии объектов и заставляем клиентов или вручную эти копии удалять, или использовать какие-то обертки, вместо нормального доступа. дык значением поля является объект и уже его состоянием должен заведовать его класс, а не какой-то другой |
|
Сообщ.
#684
,
|
|
|
|
Цитата korvin @ Нет, не должен. И TRect не должен. И integer не должен. И ещё целый парад типов также не должны это делать. Но тем не менее TRect является частью его состояния. И раз уж мне дали такой инструмент, как свойства которые собстно выставляют это поле напоказ, то должны дать инструмент позволяющий защитить моё поле от несанкционированного вмешательства. Вот в С++ этим инструментом является константность. А в делфи? арргх! еще раз: интерфейс "класса-контейнера" (TRect), ну никак не должен влиять на интерфейс класса поля (TPoint) |
|
Сообщ.
#685
,
|
|
|
|
Цитата D_KEY @ Доказательства, пожалуйста. Да были уже. Ты как-то грозился повторить на уровне библиотеки объектную модель Delphi. До сих пор жду Реализуй мне NewInstance, Dispatch, AfterConstruction, BeforeDestruction, SafeCallException - ну, для начала хотя бы |
|
Сообщ.
#686
,
|
|
|
|
я давно хотел почитать про АОП, никак руки не доходили, недавно почитал как реализован АОП для джавы (не платформы, а языка), мне сильно не понравилось, как там описываются точки соприкосновения и срезы, поэтому интерес к АОПу немного поугас. сама идея в общем-то неплоха, но реализовать по-хорошему думаю проблематично, от того и не шибко распространен. впрочем я не сильно интересовался этим вопросом, может на западе распространен достаточно, чтобы имело смысл поизучать |
|
Сообщ.
#687
,
|
|
|
|
Цитата --Ins-- @ С каких это пор объектная модель делфи стала эталоном ООП, или хотя бы удачной его реализацией? Кто так сказал? С чего взял? Да были уже. Ты как-то грозился повторить на уровне библиотеки объектную модель Delphi. До сих пор жду Реализуй мне NewInstance, Dispatch, AfterConstruction, BeforeDestruction, SafeCallException - ну, для начала хотя бы ![]() |
|
Сообщ.
#688
,
|
|
|
|
Цитата MyNameIsIgor @ Как странно... но... я программист на C#. Доктор, вы неправильно поставили диагноз, значит, вы какой-то недоучившийся доктор, и дипломчик у вас "левый". Как правило в университетах, не заостряют особого внимания на одном языке программирования, допустим когда я учился в университете у нас сначало был Паскаль, затем был С++ и паралельно Делфи, тогда же и SQL, далее был ассемблер и пролог, под конец нам преподавали FoxPro. Единственно что я жалею небыло C#, мне пришлось его изучать самому, и в принципе я его осилил, но в связи с работой, пришлось его забросить, и я его уже практически забюыл... И дума ютак во многих университетах/институтах, если не во всех, что преподавали делфистам - остается загадкой, неужто один делфи??? |
|
Сообщ.
#689
,
|
|
|
|
Цитата Повстанець @ каких это пор объектная модель делфи стала эталоном ООП, или хотя бы удачной его реализацией? Кто так сказал? С чего взял? Не сметь богохульствовать! Там же до жопы индексных свойств! |
|
Сообщ.
#690
,
|
|
|
|
Цитата --Ins-- @ D_KEY, для тебя еще раз, хоть я это уже и писал. В случае Rect.Points[0].X := где Points[0] - это класс (как и Rect), никакая инкапсуляция не нарушается. Значение X в обход сеттера не меняется. Потому что сеттер свойства Points НЕ ЗАНИМАЕТСЯ отслеживанием изменений ЗНАЧЕНИЯ точки, он вызывается при присвоении ссылки. ЧТО СЛОЖНОГО??? В пятый раз повторяю, что ничего сложного тут нет и я понимаю, что происходит. И даже почему. Я не понимаю, зачем. Я не прошу, чтобы вызывался сеттер. Я прошу, чтобы мне не дали изменить X, поскольку от этого зависит состояние Rect, а мы, фактически, позволяем напрямую изменять значение атрибута объекта Rect(да, я понимаю, что оно храниться ссылка, но состояние зависит от значения самого объекта, а не ссылки). ЧТО СЛОЖНОГО??? |