|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
06.12.2009, 14:01 | #1 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Приоритет функций
Имеется следующая ситуация:
1. Язык имеет некоторое количество встроенных функций 2. Программист имеет возможность писать свои и переопределять стандартные функции. 3. Программист может подгружать дополнительно функции из стороненнего файла во время выполнения программы (допустим при выполнении некоторого условия). 4. Я могу сделать так, чтобы было возможно выгружать код функций стороннего файла (но надо ли?). Вопрос: как поступать в случае если имя функции[число параметров] будет совпадать в основной программе и загружаемом модуле? Какую функцию выполнить или вызвать сообщение об ошибке?
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
06.12.2009, 14:06 | #2 |
Заблокирован
Старожил
Регистрация: 20.07.2008
Сообщений: 4,032
|
ИМХО-выдавать ошибку.
А вообще можно сделать некие директивы препроцессора и давать программисту право менять настройки... |
06.12.2009, 14:13 | #3 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Дык не С++, же, у меня нет препроцессора, интерпретаторам это не требуется. Отвлекитесь от конкретного языка программирования, как менять настройки? В смысле указывать командой или дать возможность отлавливать такое исключение? И разве ситуация ошибочна? Что если я хочу сменить функцию в зависимости от ситуации? Скажем функции писал один человек, но возникли новые обстоятельства и часть из них должна работать по другому алгоритму. Это просто пример использования такой ситуации, естественно я не знаю нужно ли это (иначе бы не ставил тему).
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
06.12.2009, 14:41 | #4 |
Linux C++ Qt ARM
Старожил
Регистрация: 30.11.2008
Сообщений: 3,030
|
можно использовать конструкцию, которая явно указывает использовать "родную" или заимствованную функцию (типа internal->fun1(бла-бла-бла); external->fun1(бла-бла-бла), вместо external можно указать, например, имя источника (на случай, если в нескольких внешних источниках могут быть одинаковые функции)). А если пользователь не соизволил указать, что именно ему нужно (когда есть из чего выбирать), то выдавать ошибку (с пояснением, разумеется, что есть встроенная функция fun1() и внешняя, и не понятно какую использовать)
Дилетант широкого профиля.
"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс Последний раз редактировалось ROD; 06.12.2009 в 14:44. |
06.12.2009, 14:48 | #5 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
А может по умолчанию использовать внешнюю, а если явно указано, то родную?
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
06.12.2009, 14:56 | #6 | ||
Заблокирован
Старожил
Регистрация: 20.07.2008
Сообщений: 4,032
|
Цитата:
Пример: Код:
Цитата:
|
||
06.12.2009, 15:00 | #7 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Ну я могу сделать это как явную команду языка. Так раньше было в Бейсике, например можно было задавать нижнюю границу (0 или 1) массивов (0 или 1) через оператор Option Base. Программист никак не отличал команда это или специальная управляющая директива.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
06.12.2009, 15:30 | #8 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
В бэйсике и до сих по так (с директивой Option Base).
По умолчанию, при одноимённости вызываемых функций, интерпретатор начинает с «самоделкинской» (Private) текущего модуля.
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
Последний раз редактировалось Sasha_Smirnov; 06.12.2009 в 17:35. |
06.12.2009, 15:38 | #9 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
У меня нет Private , как быть в моем случае?
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
06.12.2009, 16:20 | #10 |
Форумчянин
Форумчанин
Регистрация: 05.04.2009
Сообщений: 446
|
думаю, надо внешнюю
Nobody expects Spanish Inquisition!
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Приоритет процесса | P@SH@ | Win Api | 9 | 13.05.2014 21:48 |
Приоритет макроса | ru3000 | Microsoft Office Excel | 4 | 02.09.2009 04:45 |
использование функций в качестве параметров других функций | mono | Помощь студентам | 0 | 20.04.2009 18:25 |
Приоритет | Михаил Юрьевич | Win Api | 5 | 15.07.2008 23:23 |
Приоритет чужого процесса (консультация) | Air | Win Api | 9 | 06.03.2008 20:05 |