|
Модераторы: Daevaorn |
|
Vetos |
|
||||||
Опытный Профиль Группа: Участник Сообщений: 312 Регистрация: 4.4.2005 Репутация: нет Всего: 4 |
Здравствуйте! Столкнулся с такой проблемой. Eсть класс который обрабатывает нажатия на экран и в случае попадания нажатия в зону области вызывает функцию которую заранее получает по указателю:
Гдето в другом модуле:
И вот тут возникает ошибка: reference to non-static member function must be called. При навелдении мыши на подчеркивание пишет что : значение типа "void (NativeKeyboard::Keyboard::*)(Controllers::TapController controller, float x, floay y)" нельзя присвоить сущности типа "Controllers::controller_CALLBACK" Вообщем пока писал вопрос, дошло и решение. Это происходит потому что передается не конкретная функция а описание функции в классе. Может кто сформулирует правильно, незнаю как обьяснить:) Нужно просто делать так:
Ан нет, это только подчеркивание ушло, а ошибка при компиляции все равно возникает. Так что может все таки есть решение этой проблемы? Это сообщение отредактировал(а) Vetos - 21.2.2017, 14:48 -------------------- Строить нужно так, чтоб никто не сломал! А ломать, чтоб никто не знал 8) :ne_huliganit |
||||||
|
|||||||
xvr |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Вынесите описание функции из вашей структуры, или напишите перед ней static, если выносить не хотите
|
|||
|
||||
Vetos |
|
|||
Опытный Профиль Группа: Участник Сообщений: 312 Регистрация: 4.4.2005 Репутация: нет Всего: 4 |
В том то и проблема, что выносить из структуры не хочу, функция использует переменные структуры. Если делать static, то и все переменные она просит статик, может можно сделать всю структуру статик чтобы не приписывать static к каждой переменной??
-------------------- Строить нужно так, чтоб никто не сломал! А ломать, чтоб никто не знал 8) :ne_huliganit |
|||
|
||||
Alexeis |
|
|||
Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 12 Всего: 459 |
std::bind/std::function не?
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
azesmcar |
|
|||
uploading... Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
а откуда функция должна знать про эти переменные, если вы ей не передаете this?
Это естественно, так-как Вы хотите вызвать member функцию, а в не статические member функции необходимо передавать объект this. В вашем случае он не передается. Необходимо чтобы либо callback знал для какого объекта вызывается функция, либо нужно делать bind еще до момента передачи callback-а, т.е. по сути сделать из не статической member-функции - обычную функцию. используйте или для старого стандарта можете попробовать std::mem_fun_ref. |
|||
|
||||
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |