Показать сообщение отдельно
  #6  
Старый 27.01.2012, 11:50
shhmn shhmn вне форума
Прохожий
 
Регистрация: 27.01.2012
Сообщения: 6
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Здесь Num - просто некоторый ключ по которому выбирается нужная функция.

Более того, похоже, ты не понимаешь того, что это в любом случае откомпилированный ранее написаный код. Т.е. еще на этапе написания программы ты ДОЛЖЕН создать все функции, ссылки на которые собираешься использовать. А как выбирать нужную функцию... я для примера просто показал как можно выбрать по номеру.

Я хотел бы с вещественным типом параметра (т.е. с типом большого диапазона), а твой пример не совсем об этом.

Есть вариант (сложный) - это в функции mult выделить блок памяти, написать в него самому (без компилятора) двоичный код функции, где также зарезервировано место для переменной a, которую инициализируешь нужным значением. Потом возвращаешь указатель на этот блок памяти, как адрес функции.

Только это кажется не рациональным - потому что, грубо говоря, делаешь работу компилятора и трудно потом модифицировать и связывать с др. участками кода. Хотя может как-то можно сделать такую динамическую компиляцию средствами среды?

В итоге я реализовал двумя способами: с объектами и с глобальной переменной. Но с объектом получался другой тип возвращаемой функции, а с глобальной переменной бывали проблемы и не удобно.
Ответить с цитированием