![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Гость_kernell.cpp |
|
|||
Unregistered |
Есть функция bool Function1(bool bF, ...)
В ней, через указатель необходимо вызвать функцию void CСlass::Function2(BOOL bUseTime, char *format, ...) - член класса, что-то типа того bool Function1(bool bF, void (*LogFunct)) К вечеру голова идет кругом и срочно надо. ![]() |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Что именно тебе не понятно: как указатель на метод класса передать или что с многоточием делать? Если дело в многоточии, то метод класса должен быть определен не с переменным числом аргументов, а с параметром типа va_list.
Примерно так:
Это написано для MSVC, у других компиляторов могут быть свои тонкости - надо смотреть описание макросов va_xxx. -------------------- ... |
|||
|
||||
Guest |
|
|||
Unregistered |
Меня интересует прежде всего как передать указатель на метод класса. Т.е. передать в функцию адрес функции-метода класса. Проблема не решена. Можно, конечно сделать extern, но это не актуально.
|
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Хорошо, тогда не обращай внимание на va_xxx и многоточие, и посмотри на мой пример еще раз - там все есть. Имей ввиду, передать только указатель на метод недостаточно, нужно передать еще и целевой объект, иначе ты не сможешь вызвать его метод.
Ах да, еще сам вызов:
-------------------- ... |
|||
|
||||
Neitron |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 3.10.2005 Где: Москва Репутация: 2 Всего: 5 |
Ах да, помни что, если ты работаешь в билдере, то можешь забить на имя класса.
Любая ф-ция член специализируется специфакатор __closure. Это сообщение отредактировал(а) Neitron - 19.12.2005, 17:45 -------------------- Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей. Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ |
|||
|
||||
Mad |
|
||||||
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 7 Всего: 19 |
На самом деле, достаточно передать указатель на обьект (указатель на ф-цию не нужен
|
||||||
|
|||||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
У класса ведь может быть несколько функций с одинаковым интерфейсом, выбор которых зависит от контекста... -------------------- ... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |