Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.156] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 187 188 [189] 190 191 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#2821
,
|
|
|
|
Цитата D_KEY @ Как это нет, когда ссылочный тип или нет имеет значение только в случае переменных и ни в каком другом? Т.е. если не рассматривать переменные, то и деление на ссылочные типы и обычные не имеет смысла. не имеет и не должно, это должно относится именно к системе типов, но не к переменными. |
|
Сообщ.
#2822
,
|
|
|
|
Цитата korvin @ не существует, но это не значит, что нужно перекладывать обязанности языка на формально неверифецируюмую документации А в С++ это не так. Дело в том, korvin, что такой язык, как С++, где все находится под контролем и ответственностью программиста, но при этом содержит минимальные средства для абстрагирования, должен был появится, появился, и все еще нужен. |
|
Сообщ.
#2823
,
|
|
|
|
Цитата MyNameIsIgor @ Не значит. Но чаще всего иного выхода просто нет. Я же не говорю, что это хорошо. Это просто есть. Оно не может не есть ![]() кстати я страницу-две назад давал пример кода на языке (хотя он похоже чисто "для проектирования"), там есть возможность описать аксиоматику поведения объектов класса, думаю это уже неплохой шаг. мне понравилось =) Добавлено как определить идентичность при передаче по значению? как вообще использовать те же списки подписки при передаче по значению? =) |
|
Сообщ.
#2824
,
|
|
|
|
Цитата korvin @ Цитата D_KEY @ Как это нет, когда ссылочный тип или нет имеет значение только в случае переменных и ни в каком другом? Т.е. если не рассматривать переменные, то и деление на ссылочные типы и обычные не имеет смысла. не имеет и не должно, это должно относится именно к системе типов, но не к переменными. Системе типов от этого деления ни холодно ни жарко. Чтобы ссылки(или указатели) присутствовали именно в системе типов, а не затрагивали работу с переменными, нужно вводить отдельный параметризированный тип. Ты можешь описать разницу между ссылочными и обычными типами на примере, без использования перменных? |
|
Сообщ.
#2825
,
|
|
|
|
Цитата D_KEY @ А в С++ это не так. Дело в том, korvin, что такой язык, как С++, где все находится под контролем и ответственностью программиста, но при этом содержит минимальные средства для абстрагирования, должен был появится, появился, и все еще нужен. нет, не должен был, и единственная причина такого развития С++ -- возможность легко использовать кучу накопленного к тому времени С-кода (на тот момент, с С99 уже вроде не так все просто) |
|
Сообщ.
#2826
,
|
|
|
|
Объекты при передачи по значению не идентичны(хотя могут быть равны). Ты создаешь копию. Вообще, если речь об ООП, то передавать по значению тебе будет нужно крайне редко. Поэтому такое неявное копирование(и срезы) запрещают. Цитата как вообще использовать те же списки подписки при передаче по значению? =) А зачем их использовать при передачи по значению? Добавлено Цитата korvin @ Цитата D_KEY @ А в С++ это не так. Дело в том, korvin, что такой язык, как С++, где все находится под контролем и ответственностью программиста, но при этом содержит минимальные средства для абстрагирования, должен был появится, появился, и все еще нужен. нет, не должен был, и единственная причина такого развития С++ -- возможность легко использовать кучу накопленного к тому времени С-кода (на тот момент, с С99 уже вроде не так все просто) Бла-бла-бла. Чего же не objective-C? |
|
Сообщ.
#2827
,
|
|
|
|
Цитата korvin @ я тебе уже ответил -- у переменных нет поведения, они только служат для именования значений в исходном коде Как только появились объекты (сложный случай значения), у них же и появилось поведение. |
|
Сообщ.
#2828
,
|
|
|
|
Цитата D_KEY @ Системе типов от этого деления ни холодно ни жарко. Чтобы ссылки(или указатели) присутствовали именно в системе типов, а не затрагивали работу с переменными, нужно вводить отдельный параметризированный тип. Ты можешь описать разницу между ссылочными и обычными типами на примере, без использования перменных? а ваш & -- и есть параметризованный тип, равно как и * вот тебе без переменных (связанных с исследуемыми значениями): ![]() ![]() (define t (make-hash)) (hash-set! t 'x 0) ; обычный (hash-set! t 'a (box 0)) ; ссылочный (hash-set! t 'y (hash-ref t 'x)) (hash-set! t 'b (hash-ref t 'a)) (hash-set! t 'x 1) (set-box! (hash-ref t 'a) 1) (print (hash-ref t 'y)) ; => 0 (print (unbox (hash-ref t 'b))) ; => 1 и никаких переменных для x, y, a, b |
|
Сообщ.
#2829
,
|
|
|
|
Цитата korvin @ кстати я страницу-две назад давал пример кода на языке (хотя он похоже чисто "для проектирования"), там есть возможность описать аксиоматику поведения объектов класса, думаю это уже неплохой шаг. мне понравилось =) Ну, есть и контрактное программирование. Его реализация в D мне тоже понравилось. Контракты способны многое решить, но не всё. Жизнь банально богаче. И чем изощрённее будут наши инструменты разработки, тем сложнее будут наши задачи. Для того разработчики и нужны - чтобы принимать решения в нестандартных, нетеоретических ситуациях. Тогда, когда всё станет возможно описать формально, разработчики отомрут за ненадобностью - нужен будет только постановщик, который лишь формально опишет задачу, а машина создаст систему автоматизации. Т.е. труд разработчика ПО будет полностью автоматизирован. |
|
Сообщ.
#2830
,
|
|
|
|
Цитата D_KEY @ Объекты при передачи по значению не идентичны(хотя могут быть равны). Ты создаешь копию. Вообще, если речь об ООП, то передавать по значению тебе будет нужно крайне редко. Поэтому такое неявное копирование(и срезы) запрещают. ну собственно ЧТД |
|
Сообщ.
#2831
,
|
|
|
|
Цитата korvin @ нет, не должен был, и единственная причина такого развития С++ -- возможность легко использовать кучу накопленного к тому времени С-кода (на тот момент, с С99 уже вроде не так все просто) Ололо, C++ вообще родился из фреймворка многопоточности, написанного Страуструпом в Bell Labs для C. И объемы кода тут не причем, просто реализация получилась достаточно удачной, чтобы ее продолжили развивать |
|
Сообщ.
#2832
,
|
|
|
|
Цитата korvin @ нет, не должен был, и единственная причина такого развития С++ -- возможность легко использовать кучу накопленного к тому времени С-кода (на тот момент, с С99 уже вроде не так все просто) Даже C99 далеко до плюсов по части построения абстракции. Лично меня убивает наповал даже такая банальщина, как отсутствие пространств имён - это же финиш полный!!! |
|
Сообщ.
#2833
,
|
|
|
|
Цитата D_KEY @ Бла-бла-бла. Чего же не objective-C? он появился позже, и возможно был "закрыт" в Эппл. |
|
Сообщ.
#2834
,
|
|
|
|
Цитата korvin @ а ваш & -- и есть параметризованный тип, равно как и * Это почему? Цитата Wikipedia Тип данных определяет множество значений, набор операций, которые можно применять к таким значениям и, возможно, способ реализации хранения значений и выполнения операций. На множество значений, набор операций & и * влияния не оказывает, т.е. это модификатор типа |
|
Сообщ.
#2835
,
|
|
|
|
Цитата Мяут-Настоящий @ Ололо, C++ вообще родился из фреймворка многопоточности, написанного Страуструпом в Bell Labs для C. И объемы кода тут не причем, просто реализация получилась достаточно удачной, чтобы ее продолжили развивать при отсутствии необходимости юзать С код С++ никогда не стал бы так популярен, особенно в его теперешней монструозной форме, правда теперь и легаси кода на плюсах довольно много |