Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.192] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 47 48 [49] 50 51 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#721
,
|
|
|
|
А это его как-то обязывает создаваться в куче ? И ссылочными типами должны быть все типы языка или ни одного. Неявное деление - путь к неоднозначности и нарушению концепций и абстракции. |
|
Сообщ.
#722
,
|
|
|
|
Цитата D_KEY @ А ты подумай, от чего зависит состояние Rect, от того, на какой объект ссылается закрытое поле Point или от того, какое состояние этот объект имеет? А тут ты напрямую меняешь состояние в обход всех выстроенных абстракций. Так понятно? никакого обхода, все согласно интерфейсу. а состояние TRect можно менять как "перемещая точку, на которую повешена вершина", так и "перекидывая вершину на другую точку", как сделаешь, так и будет. в данном случае передвигается сама точка |
|
Сообщ.
#723
,
|
|
|
|
|
Сообщ.
#724
,
|
|
|
|
Цитата MyNameIsIgor @ Тут сочетание непоследованности существования ссылочных типов и типов значений в одном языке и того факта, что свойства провоцируют на плохую инкапсуляцию. свойства никого ни на что не провоцируют, Вы уже начинаете "натягивать" С++-ный стиль на делфийский |
|
Сообщ.
#725
,
|
|
|
|
Цитата korvin @ свойства никого ни на что не провоцируют Эх, не подписывались вы на их изменения... Цитата korvin @ С++-ный стиль Опишите мне его |
|
Сообщ.
#726
,
|
|
|
|
Цитата korvin @ Возможность защитить объект от посягательств -- С++ ный стиль? Это не правда. свойства никого ни на что не провоцируют, Вы уже начинаете "натягивать" С++-ный стиль на делфийский |
|
Сообщ.
#727
,
|
|
|
|
Цитата MyNameIsIgor @ Опишите мне его ![]() возвращение из методов значений полей (внутренняя реализация), приведенных к константным типам. |
|
Сообщ.
#728
,
|
|
|
|
Цитата korvin @ Цитата D_KEY @ А ты подумай, от чего зависит состояние Rect, от того, на какой объект ссылается закрытое поле Point или от того, какое состояние этот объект имеет? А тут ты напрямую меняешь состояние в обход всех выстроенных абстракций. Так понятно? никакого обхода, все согласно интерфейсу. Могу согласится с тем, что все согласно интерфейсу. Мне не ясно, почему в этом интерфейсе нельзя сказать, что модификация не допускается. А еще мне не нравится, что есть тип является классом, то поведение одно, а если нет, то другое. Цитата Да, но разве нормально менять состояние объекта в обход его методов? А именно это происходит в первом случае.а состояние TRect можно менять как "перемещая точку, на которую повешена вершина", так и "перекидывая вершину на другую точку", как сделаешь, так и будет. в данном случае передвигается сама точка Мы посылаем сообщение объекту "дай нам точку" и "измени точку", но почему-то после первого сообщения, мы можем менять состояние объекта, уже не используя его интерфейс. Нормально? |
|
Сообщ.
#729
,
|
|
|
|
Цитата Повстанець @ Возможность защитить объект от посягательств -- С++ ный стиль? Это не правда. эта возможность есть практически в любом языке. если Вы не умеете ею пользоваться -- это не проблема языка |
|
Сообщ.
#730
,
|
|
|
|
Агрегация. Офигенно. Зачем мне тогда свойства? Если TContainedPoint само следит за правильным изменением себя в контексте TRect никакие геттеры сеттеры нафиг не нужны. Просто в паблик его кидай и всё.
|
|
Сообщ.
#731
,
|
|
|
|
Цитата D_KEY @ Что итераторы? Итераторы в С++ не встроены. Хотя указатели ими являются Любой язык, имеющий оператор foreach, на уровне языка имеет поддерку итераторов. Так что плохого в том, что язык может иметь поддержку фабричных методов, к примеру? Зато велосипеды изобретать не нужно, колеса которых зачастую квадратные |
|
Сообщ.
#732
,
|
|
|
|
Цитата korvin @ Цитата MyNameIsIgor @ Опишите мне его ![]() возвращение из методов значений полей (внутренняя реализация), приведенных к константным типам. Это не совсем верно. Например. Поле имеет тип string. Это не ссылка, а значение. Мы можем запросить изменение состояние, в результате этой перемеенной будет присвоено другое значение. В ответ же на запрос этого "свойства" мы можем вернуть или копию объекта, или ссылку на константный объект - для клиента разницы нет. Можем, кстати, вернуть и обычную ссылку на сам объект, и тогда можно будет модифицировать, как в Delphi. |
|
Сообщ.
#733
,
|
|
|
|
Предлагаю переименовать "C++ и C# против Delphi". Двое на одного - всегда интереснее
|
|
Сообщ.
#734
,
|
|
|
|
Цитата D_KEY @ Могу согласится с тем, что все согласно интерфейсу. Мне не ясно, почему в этом интерфейсе нельзя сказать, что модификация не допускается. можно. я написал как -- не выставлять наружу значение поля. Цитата D_KEY @ А еще мне не нравится, что есть тип является классом, то поведение одно, а если нет, то другое. используй только классы в своем коде, кто тебе мешает? |
|
Сообщ.
#735
,
|
|
|
|
Цитата korvin @ Да я не против. И не про это. Просто напоминает она мне старый добрый (больше старый, чем добрый) процедурно-модульный подход. Что не особо вписывается в утверждение о мощи объектной системы делфи. эта возможность есть практически в любом языке. если Вы не умеете ею пользоваться -- это не проблема языка |