Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2009, 14:01   #1
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,136
По умолчанию Приоритет функций

Имеется следующая ситуация:
1. Язык имеет некоторое количество встроенных функций
2. Программист имеет возможность писать свои и переопределять стандартные функции.
3. Программист может подгружать дополнительно функции из стороненнего файла во время выполнения программы (допустим при выполнении некоторого условия).
4. Я могу сделать так, чтобы было возможно выгружать код функций стороннего файла (но надо ли?).
Вопрос: как поступать в случае если имя функции[число параметров] будет совпадать в основной программе и загружаемом модуле? Какую функцию выполнить или вызвать сообщение об ошибке?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 06.12.2009, 14:06   #2
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,033
По умолчанию

ИМХО-выдавать ошибку.
А вообще можно сделать некие директивы препроцессора и давать программисту право менять настройки...
Levsha100 вне форума Ответить с цитированием
Старый 06.12.2009, 14:13   #3
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,136
По умолчанию

Дык не С++, же, у меня нет препроцессора, интерпретаторам это не требуется. Отвлекитесь от конкретного языка программирования, как менять настройки? В смысле указывать командой или дать возможность отлавливать такое исключение? И разве ситуация ошибочна? Что если я хочу сменить функцию в зависимости от ситуации? Скажем функции писал один человек, но возникли новые обстоятельства и часть из них должна работать по другому алгоритму. Это просто пример использования такой ситуации, естественно я не знаю нужно ли это (иначе бы не ставил тему).
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 06.12.2009, 14:41   #4
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

можно использовать конструкцию, которая явно указывает использовать "родную" или заимствованную функцию (типа internal->fun1(бла-бла-бла); external->fun1(бла-бла-бла), вместо external можно указать, например, имя источника (на случай, если в нескольких внешних источниках могут быть одинаковые функции)). А если пользователь не соизволил указать, что именно ему нужно (когда есть из чего выбирать), то выдавать ошибку (с пояснением, разумеется, что есть встроенная функция fun1() и внешняя, и не понятно какую использовать)
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс

Последний раз редактировалось ROD; 06.12.2009 в 14:44.
ROD вне форума Ответить с цитированием
Старый 06.12.2009, 14:48   #5
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,136
По умолчанию

А может по умолчанию использовать внешнюю, а если явно указано, то родную?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 06.12.2009, 14:56   #6
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,033
По умолчанию

Цитата:
Дык не С++, же, у меня нет препроцессора, интерпретаторам это не требуется. Отвлекитесь от конкретного языка программирования, как менять настройки?
Не ну не препроцессор но все же некоторые настройки интерпретатора должны меняться в ходе работы программы, имхо.
Пример:
Код:
#compiler_settings[external_function_conflict]<replace|notreplace|error>
В квадратных скобках указывается флаг интерпретатора, а в угловых его значение.
Цитата:
А может по умолчанию использовать внешнюю, а если явно указано, то родную?
Хороший вариант.
Levsha100 вне форума Ответить с цитированием
Старый 06.12.2009, 15:00   #7
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,136
По умолчанию

Цитата:
Сообщение от Levsha100 Посмотреть сообщение
Не ну не препроцессор но все же некоторые настройки интерпретатора должны меняться в ходе работы программы, имхо.
Ну я могу сделать это как явную команду языка. Так раньше было в Бейсике, например можно было задавать нижнюю границу (0 или 1) массивов (0 или 1) через оператор Option Base. Программист никак не отличал команда это или специальная управляющая директива.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 06.12.2009, 15:30   #8
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

В бэйсике и до сих по так (с директивой Option Base).

По умолчанию, при одноимённости вызываемых функций, интерпретатор начинает с «самоделкинской» (Private) текущего модуля.

Последний раз редактировалось Sasha_Smirnov; 06.12.2009 в 17:35.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 06.12.2009, 15:38   #9
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,136
По умолчанию

Цитата:
Сообщение от Sasha_Smirnov Посмотреть сообщение
По умолчанию, при одноимённости вызываемых функций, интерпретатор начинает с «самоделкинской» (Private) текущего модуля.
У меня нет Private , как быть в моем случае?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 06.12.2009, 16:20   #10
Juffin
Форумчянин
Форумчанин
 
Аватар для Juffin
 
Регистрация: 05.04.2009
Сообщений: 446
По умолчанию

думаю, надо внешнюю
Nobody expects Spanish Inquisition!
Juffin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Приоритет процесса 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