6 / 6 / 0
Регистрация: 07.02.2011
Сообщений: 39
|
|
1 | |
Вызов функций07.07.2011, 13:03. Показов 2047. Ответов 19
Метки нет (Все метки)
Можно ли преобразовать строку, вводимою с консоли в вызов функции?
То есть к примеру у меня предопределено несколько функций. С консоли читается строка и потом, в зависимости от введенного, вызывается функция с аналогичным названием(Если ввели "student", то вызывается функция student() ). Реально вообще это сделать без всяких либо свитч, иф и т.д.? Я почти на 100% что это нереально, но все же..
0
|
07.07.2011, 13:03 | |
Ответы с готовыми решениями:
19
Итерационные циклы,Определение и вызов функций,Использование библиотечных функций stdio.h Передача значений функций в главную программу, вызов функций Вызов функций внутри других функций Вызов функций |
Кошковед
521 / 509 / 63
Регистрация: 12.04.2010
Сообщений: 1,390
|
|
07.07.2011, 13:14 | 4 |
интересно, а чем так switch то непонравился
даже если нужно будет передавать параметры, можно ведь считать строку и вытащить эти самые параметры из нее
1
|
6 / 6 / 0
Регистрация: 07.02.2011
Сообщений: 39
|
|
07.07.2011, 13:16 [ТС] | 5 |
не то, что бы не понравился, просто если например около 50 вариантов, не писать же свитч на столько
0
|
07.07.2011, 13:21 | 6 | |||||
В готовом коде нет ф-ции student(), вместо нее есть например 0x0041a3e0
Как вариант:
1
|
Кошковед
521 / 509 / 63
Регистрация: 12.04.2010
Сообщений: 1,390
|
|
07.07.2011, 13:22 | 7 |
а кто сказал что будет легко?
все всегда на много сложнее, чем кажется на первый взгляд. в кодинге главное - простой интерфейс ( если он есть конечно ), что б пользователь не ломал себе голову, типо "а как эта хрень работает ?!"
0
|
Jupiter
|
07.07.2011, 13:24
#8
|
0
|
Freelance
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
|
||||||
07.07.2011, 13:34 | 9 | |||||
Сообщение было отмечено как решение
Решение
Еще так можно:
3
|
Заблокирован
|
|
07.07.2011, 13:45 | 10 |
можно ещё реализовать через ассоциативный массив:
ключ - стринговое имя функции, значение - указатель на настоящую функцию. Работает, конечно, в разы медленнее, чем тот же свитч, зато можно в рантайме добавлять новые функции. Но имхо: по сути это скрипт. Если таких функций мало, и на лету новые приготавливать не нужно, лучше юзать быстрый свитч. А если вам интерпретатор понадобился - может быть есть смысл глянуть в сторону Луа
0
|
Kastaneda
|
|||||
07.07.2011, 13:49
#11
|
|||||
Не по теме: asics, зачем boost притянул? ;)
0
|
asics
|
07.07.2011, 13:52
#12
|
0
|
Jupiter
|
07.07.2011, 13:52
#13
|
Не по теме: уже std::function
0
|
Kastaneda
|
07.07.2011, 13:55
#14
|
0
|
asics
|
07.07.2011, 13:55
#15
|
0
|
Jupiter
|
07.07.2011, 14:05
#16
|
Не по теме: Kastaneda, в студии std::tr1::function )
1
|
|
07.07.2011, 14:08
#17
|
0
|
|
07.07.2011, 15:10
#19
|
Не по теме: asics, скачал пакет обновлений, но он отказался поставиться.
0
|
asics
|
07.07.2011, 15:59
Вызов функций
#20
|
Не по теме: Bers, Смотрите что я нашол, по поводу этого пака:
1
|
07.07.2011, 15:59 | |
Вызов функций Вызов функций Вызов функций Вызов функций Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |