Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Различные структуры данных. Реализация
|
|||
|---|---|---|---|
|
#18+
Странно, BS на 192 странице (7.4) говорит о том что происходит некий процесс поиска подходящей функции. Да и это логично ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 02:27 |
|
||
|
Различные структуры данных. Реализация
|
|||
|---|---|---|---|
|
#18+
White OwlТам есть практически один единственный тип данных IupHandle*. Конкретные объекты создаются через IupFrame(), IupButton(), IupMenu(), etc. А дальше опять одна единственная функция IupSetAttribute(IupHandle*, ....);так и вижу, как я пишу функции вида: IupEmptyFrame(), IupFrameWithHeader(), IupFrameWithDoubleBorder(), IupFrameWithHeaderAndDoubleBorder()... потому что это понятней всё же, чем Код: plaintext 1. 2. 3. 4. 5. разбросанные по всему коду ровным слоем. Бррр! )))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 02:34 |
|
||
|
Различные структуры данных. Реализация
|
|||
|---|---|---|---|
|
#18+
White OwlВ данном случае общий предок это "некая переменная". Ну вот и сделай себе абстрактную переменную. Это будет конечно чуть сложнее чем с POD типами, но не намного. А можете привести код вызывающий такую функцию с двумя разными типами, чтобы мы увидели насколько это "не намного сложнее", когда вместо передачи числа или строки создается, а после вызова удаляется объект? Также не совсем понятно как перегрузка разным количеством аргументов реализуется с помощь. наследования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 02:43 |
|
||
|
Различные структуры данных. Реализация
|
|||
|---|---|---|---|
|
#18+
egorychWhite Owl, >>Неверно. Опыт тебе должен говорить: Использовать объектную парадигму легче на языках поддерживающих объектный синтаксис. ну, это софистика уже пошла.А вот тут я бы тебе предложил заглянуть в словарь, с целью узнать значение слова "софизм". А вот то что ты допустил паралогизм играясь с тавтологией это без сомнения. egorych>>А так, объектную парадигму можно применить практически к любому языку. эмулировать можно, где то лучше, где то хуже. Можно даже назвать это "я пишу в объектном стиле", а я это называю: "я умею строить вон какие крутые костыли" И? Одно другому не мешает. Вопрос же был: возможно ли это? Ответ: да возможно. И эти костыли не такие уж крутые. Ты бы посмотрел как объектность достигается в Rexx, особенно как это внутри организовано... Вот там это действительно восхищение вызывает! egorych>>Это надо понимать что ты не видел системных программ написанных на Quick BASIC я и игры на бэйсике видел, не об этом ведь речьПовторюсь: Вопрос же был: возможно ли это? Ответ: да возможно. Так что да, Turbo Basic это тоже язык системного программирования. Если из ЯП можно добраться до функций ОС - это язык годный для системного программирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 02:45 |
|
||
|
Различные структуры данных. Реализация
|
|||
|---|---|---|---|
|
#18+
SashaMercuryСтранно, BS на 192 странице (7.4) говорит о том что происходит некий процесс поиска подходящей функции. Да и это логично Да при компиляции происходит поиск имен. Это занимает микросекунды. Т.е. по сути не влияет на скорость компиляции. При связывании скорость поиска не зависит от перегрузки, т.к. каждая перегрузка дает отдельное имя. А при выполнении имен вообще нет, есть только адреса, которые вообще не надо искать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 02:49 |
|
||
|
Различные структуры данных. Реализация
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskySashaMercuryСтранно, BS на 192 странице (7.4) говорит о том что происходит некий процесс поиска подходящей функции. Да и это логично Да при компиляции происходит поиск имен. Это занимает микросекунды. Т.е. по сути не влияет на скорость компиляции. При связывании скорость поиска не зависит от перегрузки, т.к. каждая перегрузка дает отдельное имя. А при выполнении имен вообще нет, есть только адреса, которые вообще не надо искать. а, в С++ статическая типизация как и в Си, верно ?) Т.е. это влияет только на скорость компиляции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 02:52 |
|
||
|
Различные структуры данных. Реализация
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyWhite OwlВ данном случае общий предок это "некая переменная". Ну вот и сделай себе абстрактную переменную. Это будет конечно чуть сложнее чем с POD типами, но не намного. А можете привести код вызывающий такую функцию с двумя разными типами, чтобы мы увидели насколько это "не намного сложнее", когда вместо передачи числа или строки создается, а после вызова удаляется объект?Мне уже лень писать очевидный код. Повторяю ссылку: http://iup.sourceforge.net/ Библиотека построенная именно по принципу наследования структур. Там есть и примеры, и исходники и все что угодно. И она уже вылизанная и без синтаксических ошибок. А то знаю я вас, опечатаюсь где-нибудь, а в ответ сразу прилетит: "Этот метод не работает!" Anatoly MoskovskyТакже не совсем понятно как перегрузка разным количеством аргументов реализуется с помощь. наследования.Через эллипсис конечно. Да, ошибки компилятор не отловит, но в рантайме можно все очень просто сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 03:02 |
|
||
|
Различные структуры данных. Реализация
|
|||
|---|---|---|---|
|
#18+
egorychWhite OwlТам есть практически один единственный тип данных IupHandle*. Конкретные объекты создаются через IupFrame(), IupButton(), IupMenu(), etc. А дальше опять одна единственная функция IupSetAttribute(IupHandle*, ....);так и вижу, как я пишу функции вида: IupEmptyFrame(), IupFrameWithHeader(), IupFrameWithDoubleBorder(), IupFrameWithHeaderAndDoubleBorder()... потому что это понятней всё же, чем Код: plaintext 1. 2. 3. 4. 5. разбросанные по всему коду ровным слоем. Бррр! ))))То есть тебе больше по душе метод примененный в GLIB/GTK+? Ну Ок. Называется от чего ушли, к тому пришли :) Но эта парадигма тоже вполне рабочая и прекрасно живущая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 03:04 |
|
||
|
Различные структуры данных. Реализация
|
|||
|---|---|---|---|
|
#18+
White OwlЧерез эллипсис конечно. Да, ошибки компилятор не отловит, но в рантайме можно все очень просто сделать. И передавать число аргументов? Без этого ... не работает. Я правильно понимаю? Чтобы на С писать программы с уровнем абстракции выше ассемблера, надо реализовать в проекте свой вариант эмуляции динамической типизации. Так а зачем нужен С тогда? Пишите сразу на Перле или Питоне каком-нибудь - там все это готовое уже, и скорость будет такая же, если не лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 03:23 |
|
||
|
Различные структуры данных. Реализация
|
|||
|---|---|---|---|
|
#18+
Прошу прощение, у меня тут возник вопрос по теме топика. Написал программу (взял у K&R) собирающую все слова в файле с подсчётом появлений. Использую бинарное дерево Код: plaintext 1. 2. 3. 4. 5. 6. 7. И такие функции: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. Такой код обрабатывает файл Код: plaintext 1. 2. 3. 4. 5. 6. Функций retree мне не нравится, думаю что проблема в ней. Но она приведена у K&R, потому возможно с ней всё в порядке. Подскажите пожалуйста, в чём я ошибаюсь ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 04:07 |
|
||
|
Различные структуры данных. Реализация
|
|||
|---|---|---|---|
|
#18+
И ещё у меня вопрос по соседнему топику, но там я не могу отправить сообщение. Не знаю почему. Объекты объявленные в теле цикла являются автоматическими, это так. И потому они действительно должны автоматически уничтожиться, не вызывая утечек. Но как это должно наверняка происходить в цикле ? 1. Либо, как говорит Анатолий (возможно это соответствует стандарту), на каждой итерации цикла будет создаваться новый объект, путь даже по тому-же адресу 2. Либо объект будет создан один раз, и уничтожится после завершения всех итераций цикла (о чём говорил Дмитрий, и что логичнее). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 04:13 |
|
||
|
Различные структуры данных. Реализация
|
|||
|---|---|---|---|
|
#18+
SashaMercury, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 06:19 |
|
||
|
Различные структуры данных. Реализация
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan), Заработало, не заметил. Спасибо ) Только так исправил Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 06:33 |
|
||
|
Различные структуры данных. Реализация
|
|||
|---|---|---|---|
|
#18+
White Owl, >>Вопрос же был: возможно ли это? Ответ: да возможно. так с этим то как раз никто не спорит. С помощью волшебных костылей можно всё. Спор ведётся о том, нужно ли :) Ведь есть инструмент, который позволяет обсуждаемое из-коробки, так зачем нужны все эти извращения? Вот чего я понять до сих пор не могу )) >>То есть тебе больше по душе метод примененный в GLIB/GTK+? мне по душе метод, применённый в С++. Хочешь писать в объектном стиле - бери язык с поддержкой ООП :) >>Называется от чего ушли, к тому пришли :) это называется, что так и не ушли, а просто переместили проблему уровнем выше, ничего, по сути, не решив :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 09:16 |
|
||
|
Различные структуры данных. Реализация
|
|||
|---|---|---|---|
|
#18+
Я читал... думал... снова читал. Слушайте... а почему вы сравниваете два абсолютно разных языка? Вы бы ещё Дельфи с Питоном сравнивали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 13:12 |
|
||
|
Различные структуры данных. Реализация
|
|||
|---|---|---|---|
|
#18+
jmp_originalСлушайте... а почему вы сравниваете два абсолютно разных языка? Какие же они разные, если все вот эти С-шные костыли можно просто взять и не меняя ни строчки кода использовать в С++ коде (ну предположим что найдутся извращенцы, которые имея С++ буду писать на нем в стиле С) ? :) jmp_originalВы бы ещё Дельфи с Питоном сравнивали. А тут - да. Несравнимо. Дельфи-то вообще не язык ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 13:51 |
|
||
|
Различные структуры данных. Реализация
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky, 1) Можно. Даже, наверное, находятся. Только это всё равно будет PureC, а не. 2) Хорошо, Паскаль. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 14:02 |
|
||
|
Различные структуры данных. Реализация
|
|||
|---|---|---|---|
|
#18+
jmp_original2) Хорошо, Паскаль. Я другое имел в виду когда говорил "не язык" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 14:09 |
|
||
|
Различные структуры данных. Реализация
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyЯ другое имел в виду когда говорил "не язык" как там было о снобизме? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 14:23 |
|
||
|
Различные структуры данных. Реализация
|
|||
|---|---|---|---|
|
#18+
egorychкак там было о снобизме? Одно дело, когда отвечаешь на чистый флейм, другое дело когда на полном серьезе даются советы )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 15:12 |
|
||
|
Различные структуры данных. Реализация
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovskyjmp_originalСлушайте... а почему вы сравниваете два абсолютно разных языка? Какие же они разные, если все вот эти С-шные костыли можно просто взять и не меняя ни строчки кода использовать в С++ коде (ну предположим что найдутся извращенцы, которые имея С++ буду писать на нем в стиле С) ? :) Возможно ноги растут от интеграции другими средами или рантаймами или технологиями. Обычно С-исходник проще вызывается из через JNI, Remoting. Или прочие техники маршалинга-сериализации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 16:44 |
|
||
|
Различные структуры данных. Реализация
|
|||
|---|---|---|---|
|
#18+
maytonОбычно С-исходник проще вызывается из через JNI, Remoting. Или прочие техники маршалинга-сериализации. Проще чем что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 17:28 |
|
||
|
Различные структуры данных. Реализация
|
|||
|---|---|---|---|
|
#18+
Толик не придирайся. Ты прекрасно понял чем что. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 18:36 |
|
||
|
Различные структуры данных. Реализация
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyЯ правильно понимаю? Чтобы на С писать программы с уровнем абстракции выше ассемблера, надо реализовать в проекте свой вариант эмуляции динамической типизации.Не передергивай. Можно писать ОО на Си даже со статической типизацией, но вот ее уже надо будет делать вручную. Она конечно будет потом оптимизирована вплоть до отсутствия кода, но в исходнике ее надо будет самому писать. Пример: GTK+ с его функциями вида GTK_WIDGET(). С динамической типизацией проще. egorych>>Вопрос же был: возможно ли это? Ответ: да возможно. так с этим то как раз никто не спорит. С помощью волшебных костылей можно всё. Спор ведётся о том, нужно ли :) Ведь есть инструмент, который позволяет обсуждаемое из-коробки, так зачем нужны все эти извращения? Вот чего я понять до сих пор не могу ))Нет. О том "нужно оно или нет" вопрос в этом топике, вплоть до поста на который я сейчас отвечаю, еще не поднимался. Anatoly MoskovskymaytonОбычно С-исходник проще вызывается из через JNI, Remoting. Или прочие техники маршалинга-сериализации. Проще чем что? Проще чем всё. Межязыковое взаимодействие с Си намного проще чем с любым другим языком. За исключением ассемблера конечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 18:40 |
|
||
|
Различные структуры данных. Реализация
|
|||
|---|---|---|---|
|
#18+
maytonТолик не придирайся. Ты прекрасно понял чем что. White OwlПроще чем всё. Межязыковое взаимодействие с Си намного проще чем с любым другим языком. За исключением ассемблера конечно. Ну видите. Далеко не всем понятно, не только проще чем что, но и вообще что проще. Мне например совершенно не понятно проще чем что JNI, которое является одной из самых технически сложных для применения технологий межъязыкового взаимодействия. И уж точно не проще прямого С-шного синтаксиса при вызове внешних библиотек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 18:45 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38883458&tid=2018439]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 157ms |

| 0 / 0 |
