![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
null56 |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 721 Регистрация: 19.3.2008 Репутация: 2 Всего: 12 |
Возможно ли назначить обработчики события, по имени функции...
Как обычный порядок работы программы.... Например Есть функция
Я хочу запомнить ее по определенному имени... что - то типа
Чтобы можно было в дальнейшем вызвать эту функцию, где - нибудь в своей программе
ВОПРОС: возможно ли найти функцию по ее имени в памяти???? Или придется это эмулировать подручными средствами? Или это лучше сделать через указатель на функцию, что будет грамотней, запомнить адрес функции? |
||||||
|
|||||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
null56, встроенными средствами - нет, нельзя.
Сразу возникает вопрос: зачем тебе это нужно? -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
null56 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 721 Регистрация: 19.3.2008 Репутация: 2 Всего: 12 |
Заранее благодарен всем откликнувшимся
Добавлено через 8 минут и 44 секунды На самом деле больше из интереса... В php был xml парсер, который сам был написан на с++ и подключался к скриптам... Я прекрасно понимаю, что это интерпретатор и он ищет не по адресам в памяти. Там была как раз эта возможность... задать нужные функции по их именам Сейчас просто возникла задача написать кое какой парсер, не для xml конечно, но все же... думал сделать аналогичным образом Но ничего, через указатели на функции попробую сделать |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
null56, вообще-то для этого полиморфизм придуман (наследование и виртуальные методы). Хотя, по сути - это именно указатели на функции, но в красивой оболочке.
|
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Ещё краше оболочка из boost::function
![]() -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
а в ней случаем этот полиморфизм не используется? ![]() |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Он самый. Просто сравни:
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
archimed7592, ты как думаешь, то что ты написал топикстартер поймет? Я, слава богу, сообразил, что ты сказать хотел. Но человек, который не знает, что такое boost::function, вряд ли догадается.
![]() Хотя, с точки зрения его требований - это то, что нужно... С другой стороны, по моему, буст отличается тем, что у него УЖАСНЕЙШАЯ документация. Возможно, чтобы отсеить новичков пока не "дорастут". В свое время мне, например, чтобы понять, как залочить мьютекс, понадобилось смотреть исходники, так как в документации об этом как-то не очень говорилось (ну не знал я этой концепции тогда). |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Не поймёт - спросит, а мы объясним ![]()
Хм... не знаю, не замечал... Есть, конечно, неясные моменты, но ширпотребные либы задокументированны достаточно хорошо... мне так кажется. Не знаю как было в твоё время ![]() ![]() -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
Как создавать я понял сразу. А вот как лочить - долго не мог понять. Не знал, что это делается через отдельный объект (хотя, это и логично). |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |