| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Вызов функции по имени |
| Автор: knut 18.4.2007, 18:37 | ||||
| Добрый день всем. Че та не как не могу себя поймат на ошибке. А вопрос вот сообственно в следуюшем. Надо вызвать функцию по имени.
добавляем в мап элемент лючь каторога "func1" a значение адрес функции func1 что не так?
|
| Автор: Sartorius 18.4.2007, 18:42 | ||
чего пишет то компилятер? |
| Автор: knut 18.4.2007, 18:45 | ||
|
| Автор: Xenon 18.4.2007, 18:46 |
| knut, название функции и является ее адресом |
| Автор: JackYF 18.4.2007, 18:50 | ||||
У тебя не получится просто так передать указатель на функцию, ведь это не обычная функция, а функция класса. Ей следует неявно передать и *this, как минимум. Так что в этом случае
и
Если не ошибаюсь. |
| Автор: Xenon 18.4.2007, 18:50 |
| А в данном случае фунции являются членами класса, поэтому не работает |
| Автор: knut 18.4.2007, 19:00 | ||
поправил на
а как на по вызову m_map[name](); здесь что не так? |
| Автор: MAKCim 18.4.2007, 19:12 | ||
|
| Автор: knut 18.4.2007, 19:19 |
| MAKCim, в данном примере this не обезательно писать оно работать и без this a |
| Автор: knut 18.4.2007, 19:32 | ||
не ну я имел виду ошибка небыла связанна с этим
|
| Автор: dizzy1984 19.4.2007, 07:28 | ||||
Кстати чтобы быть более информативным можно заменить строку
на
и все аналогичные Но это не будет работать на vc++6.0 и ниже. |
| Автор: Earnest 20.4.2007, 21:26 |
Конечно, потому что функция-член, которую ты пробовал так вызвать получает как минимум один аргумент. |
| Автор: knut 21.4.2007, 14:21 |
| Earnest, точно Вы все правельно поняли |