Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.192] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 43 44 [45] 46 47 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#661
,
|
|
|
|
Хотеть то можно чего угодно. Вопрос в том, зачем это нужно? |
|
Сообщ.
#662
,
|
|
|
|
Цитата KILLER @ Естественно, там где нет AfterConstruction - на всех этих языкам, бедные программеры, только и делают что извращаются ![]() нет конечно! но вот это миф. хотя делфийские after-и befor-методы -- это жуткий примитивизм Добавлено возвращай новый объект, а не тот который в поле, либо пересмотри интерфейс TRect, может для него и не нужно возвращать эту точку? |
|
Сообщ.
#663
,
|
|
|
|
Почему? Я в Delphi-конструкторах могу сделать все то же, что и в c++/c#, и даже больше, причем значительно Задача надумана, не спорю, но мне просто нужен был пример класса с двумя индексными свойствами. Это нормальная задача? Нормальная. Я ее решил как она стояла - два свойства так два свойства, ну и красоты ради продемонстрировал как в таком большом количестве свойств обойтись всего четырьмя методами. Посчитай сколько методов у тебя Ну а про то, как были индексаторы сэмулированы - это круто, такая простая задача требует таких извратов |
|
Сообщ.
#664
,
|
|
|
|
Цитата korvin @ нет конечно! но вот это миф Причем тут AfterConstruction ? |
|
Сообщ.
#665
,
|
|
|
|
Цитата --Ins-- @ Не понял как методы тебе помогут в чем-либо? Свойства - это с одной стороны просто сокращенная запись методов Миллион способов автоматического контроля жизни объектов 1. Owner 2. Оборачиваем в интерфейс. Интерфейсы автоматически финализируются 3. Helper к классу TObject позволит просто подключить автоконтроль времени жизни ко всем типам объектов, которые захочешь И не одного, удобного клиенту. Цитата Цитата D_KEY @ А разве в Delphi можно сказать этому объекту владельцу, чтобы он вел себя как ссылка или указатель? В С++ умные указатели-владельцы имеют интерфейс указателей(*, -> и т.п.). В с++ много чего не по-человечески сделано. А в Delphi можно сказать объекту-владельцу, чтобы он вел себя как объект-владелец, а не то, чем он не является. В древнем Китае желающим странного отрубали голову. Очень мудро Что тут странного? Обычная перегрузка операторов. Предоставляем косвенный доступ к объекту указанного класса. |
|
Сообщ.
#666
,
|
|
|
|
Цитата korvin @ Т.е. концептуально свойства не в состоянии обеспечить инкапсуляцию, в общем случае? возвращай новый объект, а не тот который в поле, либо пересмотри интерфейс TRect, может для него и не нужно возвращать эту точку? |
|
Сообщ.
#667
,
|
|
|
|
|
Сообщ.
#668
,
|
|
|
|
Цитата --Ins-- @ Почему? Я в Delphi-конструкторах могу сделать все то же, что и в c++/c#, и даже больше, причем значительно Ага, я тебе верю, как вы там говорили - отстрелить себе ногу или голову проще некуда, или что то в етом роде, забыл чота |
|
Сообщ.
#669
,
|
|
|
|
Цитата KILLER @ Причем тут AfterConstruction ? ну... при всем. это в некотором роде точка соединения, в которой применяется совет |
|
Сообщ.
#670
,
|
|
|
|
Цитата --Ins-- @ Задача надумана, не спорю, но мне просто нужен был пример класса с двумя индексными свойствами. Так в том то и дело, что так не проектируется. Кто же будет моделировать предметную область исходя из "хочу класс с двумя индексными свойствами!" Подгонка задачи под инструмент? То, что кто-то захотел эти "два индексных свойства" - это понятно. Не понятно на кой они так нужны? Впрочем, как и свойства вообще. |
|
Сообщ.
#671
,
|
|
|
|
Цитата korvin @ кстати, D_KEY, в Хаскелле нет const именно по семантике, нельзя мутабельное значение какого-нибудь IO-типа привести к немутабельному и передать "во вне" в качестве возвращаемого значения функции Все-таки там скорее нет мутабельных типов, за некоторым ограничением. Поскольку использование мутабельных типов может быть ограничено специальными случаями, приведение к константным объектам, в принципе, не требуется, хотя никаких проблем я тут не вижу. |
|
Сообщ.
#672
,
|
|
|
|
Цитата korvin @ ну... при всем. это в некотором роде точка соединения, в которой применяется совет Ммм...Странно, что я до сих пор не почувствовал в нем острую потребность... |
|
Сообщ.
#673
,
|
|
|
|
Цитата MyNameIsIgor @ Подгонка задачи под инструмент? Очень точное словосочетание в случае, когда ты отказываешься от индексных свойств (и заменяешь их страшно представить чем) потому, что твой инструмент их поддержку должным образом не обеспечивает. Очень точно сказано! Цитата MyNameIsIgor @ Впрочем, как и свойства вообще. Это влияние с++, точно тебе говорю. Там же вроде свойств нет, вот и невозможно теперь программируя в другом языке мыслить его категориями |
|
Сообщ.
#674
,
|
|
|
|
Цитата Повстанець @ Т.е. концептуально свойства не в состоянии обеспечить инкапсуляцию, в общем случае? арргх! еще раз: интерфейс "класса-контейнера" (TRect), ну никак не должен влиять на интерфейс класса поля (TPoint) если ты возвращаешь объект класса TPoint, то он и должен вести себя как объект класса TPoint. причем, поскольку ты возвращаешь тот же самый объект, а не его копию, то получаешь то эффект, которому так удивляешься. причем тут инкапсуляция -- не пойму |
|
Сообщ.
#675
,
|
|
|
|
Цитата korvin @ тоже не помню, вроде можно. но лично мне Оберон не нравится, как там Реймонд писал "делай проще насколько возможно, но не слишком просто". Вирт, имхо, черезчур упрощает, примитивизирует свои языки +1 Цитата Да хоть зачитайся. Состояние объекта описывается, как правило, не самой ссылкой на поле, а именно значением поля, хотя объект и содержит ссылку. Если С++ позволяет запретить такие изменения, то Delphi - нет. В результате порождаем лишнии копии объектов и заставляем клиентов или вручную эти копии удалять, или использовать какие-то обертки, вместо нормального доступа. еще один... читай на предыдущей странице про инкапсуляцию |