Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.192] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 32 33 [34] 35 36 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#496
,
|
|
|
|
Что значит "откуда"? Оттуда, что это ошибка. Ставят для того, чтобы не задумываться о зависимостях одного заголовочного файла от другого. Я могу написать ![]() ![]() #include <a.h> #include <b.h> и не думать, включает a.h файл b.h или нет. |
|
Сообщ.
#497
,
|
|
|
|
т.е. никакого смысла не писать "#pragma once" нет? и все его пишут лишь потому что компилятор не в состоянии загружать файл только один раз? как это мило Добавлено Цитата MyNameIsIgor @ Ставят для того, чтобы не задумываться о зависимостях одного заголовочного файла от другого. Я могу написать ![]() ![]() #include <a.h> #include <b.h> и не думать, включает a.h файл b.h или нет. ты знаешь, никто и не думает об этом, но только сишникам/сиплюсплюсникам приходится это писать явно |
|
Сообщ.
#498
,
|
|
|
|
Цитата korvin @ т.е. никакого смысла не писать "#pragma once" нет? и все его пишут лишь потому что компилятор не в состоянии загружать файл только один раз? как это мило В общем и целом да. Наследие С, вполне достаточно для создания программ. При наличии классов большего не требуется. Поверь, это не самая существенная проблема при программировании на С++. Собственно, единственное, что принесут модули - это возможность не ставить стражей. Стоит ли оно введения в язык нового для языка понятия(модули), которое к тому же устарело? Кроме того, все-равно их будут ставить для обеспечения совместимости. Так что... |
|
Сообщ.
#499
,
|
|
|
|
Цитата korvin @ ты знаешь, никто и не думает об этом, но только сишникам/сиплюсплюсникам приходится это писать явно Ну, новый вброс я оценил, тем не менее надо бы вернуться к нашим баранам: какое отношение интимные препроцессорные проблемы C/C++ имеют к тому факту, что модули без особой надобности при наличии ООП? Те же Java и C# лишены всех этих плясок с препроцессором, а как таковых модулей не имеют. И ущербными себя не чувствуют. |
|
Сообщ.
#500
,
|
|
|
|
Цитата korvin @ ты знаешь, никто и не думает об этом, но только сишникам/сиплюсплюсникам приходится это писать явно Нашел Великую Проблему |
|
Сообщ.
#501
,
|
|
|
|
Цитата D_KEY @ Собственно, единственное, что принесут модули - это возможность не ставить стражей. Стоит ли оно введения в язык нового для языка понятия(модули), которое к тому же устарело? почему это сразу не сделали в неймспейсах и почему это понятие модуля устарело? |
|
Сообщ.
#502
,
|
|
|
|
Цитата korvin @ Цитата D_KEY @ Собственно, единственное, что принесут модули - это возможность не ставить стражей. Стоит ли оно введения в язык нового для языка понятия(модули), которое к тому же устарело? почему это сразу не сделали в неймспейсах А причем тут неймспейсы? Цитата Я уже объяснял.и почему это понятие модуля устарело? В случае ООП модульность обеспечивается классами и объектами, а не модулями, как при структурном проектировании. |
|
Сообщ.
#503
,
|
|
|
|
Цитата MyNameIsIgor @ Ну, новый вброс я оценил, тем не менее надо бы вернуться к нашим баранам: какое отношение интимные препроцессорные проблемы C/C++ имеют к тому факту, что модули без особой надобности при наличии ООП? Те же Java и C# лишены всех этих плясок с препроцессором, а как таковых модулей не имеют. И ущербными себя не чувствуют. зато имеют пакеты и неймспейсы, сущности, которые к ООП отношения не имеют, выполняют часть функций модулей, но тем не менее в этих ООП-языках юзаются. кроме того я приводил пример, чем могут разные модули отличаться в Racket Добавлено Цитата D_KEY @ Я уже объяснял. В случае ООП модульность обеспечивается классами и объектами, а не модулями, как при структурном проектировании. приведи мне класс/объект меняющий внутри своего описания readtable |
|
Сообщ.
#504
,
|
|
|
|
Цитата korvin @ зато имеют пакеты и неймспейсы, сущности, которые к ООП отношения не имеют, выполняют часть функций модулей, но тем не менее в этих ООП-языках юзаются. кроме того я приводил пример, чем могут разные модули отличаться в Racket Зачем C++ система такая как в Racket? Цель - построить гармоничную и качественную систему, это в C++ есть, и без этих ваших языков, которые получтора программистам на свете нужны. |
|
Сообщ.
#505
,
|
|
|
|
Цитата D_KEY @ А причем тут неймспейсы? группировка сущностей в пространство имен -- это одна из функций модулей. почему ее выполняют неймспейсы, а не классы/объекты? |
|
Сообщ.
#506
,
|
|
|
|
Цитата korvin @ Цитата MyNameIsIgor @ Ну, новый вброс я оценил, тем не менее надо бы вернуться к нашим баранам: какое отношение интимные препроцессорные проблемы C/C++ имеют к тому факту, что модули без особой надобности при наличии ООП? Те же Java и C# лишены всех этих плясок с препроцессором, а как таковых модулей не имеют. И ущербными себя не чувствуют. зато имеют пакеты и неймспейсы, сущности, которые к ООП отношения не имеют, выполняют часть функций модулей, но тем не менее в этих ООП-языках юзаются. Что тебя не устраивает? Цитата Цитата D_KEY @ Я уже объяснял. В случае ООП модульность обеспечивается классами и объектами, а не модулями, как при структурном проектировании. приведи мне класс/объект меняющий внутри своего описания readtable Расскажи подробнее, что, зачем и почему |
|
Сообщ.
#507
,
|
|
|
|
Цитата korvin @ зато имеют пакеты и неймспейсы, сущности, которые к ООП отношения не имеют, выполняют часть функций модулей, но тем не менее в этих ООП-языках юзаются. кроме того я приводил пример, чем могут разные модули отличаться в Racket Ну, за Java много говорить не буду - знаком в общих чертах. Пространства имён шарпа не несут никаких дополнительных функций в сравнении с пространствами имён плюсов. А вот дотнетовские сборки - это библиотеки. Не знаю джавовские пакеты, потому как-то трудно сравнивать их со сборками... Поэтому попрошу пояснения: какие функции модулей выполняют дотнетовские сборки? |
|
Сообщ.
#508
,
|
|
|
|
Цитата korvin @ Цитата D_KEY @ А причем тут неймспейсы? группировка сущностей в пространство имен -- это одна из функций модулей. почему ее выполняют неймспейсы, а не классы/объекты? С каких пор модули стали открытыми? Добавлено Цитата MyNameIsIgor @ Цитата korvin @ зато имеют пакеты и неймспейсы, сущности, которые к ООП отношения не имеют, выполняют часть функций модулей, но тем не менее в этих ООП-языках юзаются. кроме того я приводил пример, чем могут разные модули отличаться в Racket Ну, за Java много говорить не буду - знаком в общих чертах. Пространства имён шарпа не несут никаких дополнительных функций в сравнении с пространствами имён плюсов. А вот дотнетовские сборки - это библиотеки. Не знаю джавовские пакеты, потому как-то трудно сравнивать их со сборками... Поэтому попрошу пояснения: какие функции модулей выполняют дотнетовские сборки? Не, пакеты в java это не сборки. Это... ну ... неймспейсы, отмапленные дополнительно на файловую систему. |
|
Сообщ.
#509
,
|
|
|
|
Цитата D_KEY @ Расскажи подробнее, что, зачем и почему ![]() что -- использовать при описании модуля (для тебя -- класса) некое расширение синтаксиса (например для тех же списков определить синтаксис для list comprehension), которое должно действовать только в границах этого описания, т.е. от "class Foo {" до соответствующей "}" зачем -- в описании модуля (класса) предполагается частое использование списков, хотелось бы упростить код ("[1..10]" как-то короче нежели какой-нибудь "enumList(1, 10)", или "[sqrt(x), x = [1..10], isOdd(x)]" чем "map( lambda (x) = sqrt(x), filter( lambda (x) = isOdd(x), enumList(1, 10) ) )" =) ) |
|
Сообщ.
#510
,
|
|
|
|
Цитата korvin @ Цитата D_KEY @ Расскажи подробнее, что, зачем и почему ![]() что -- использовать при описании модуля (для тебя -- класса) некое расширение синтаксиса (например для тех же списков определить синтаксис для list comprehension), которое должно действовать только в границах этого описания, т.е. от "class Foo {" до соответствующей "}" Не понял. Цитата зачем -- в описании модуля (класса) предполагается частое использование списков, хотелось бы упростить код ("[1..10]" как-то короче нежели какой-нибудь "enumList(1, 10)", или "[sqrt(x), x = [1..10], isOdd(x)]" чем "map( lambda (x) = sqrt(x), filter( lambda (x) = isOdd(x), enumList(1, 10) ) )" =) ) Цель не ясна. Не нравится одна абстракция - построй другую. Зачем менять синтаксис? Кстати, модули Delphi тут мало помогут. |