Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.08.2011, 11:05   #1
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию Указатель на функцию и функция-член

Требуется в переменную типа LRESULT (*)(HWND__*, UINT, WPARAM, LPARAM) записать функцию-член класса, функция определена точно также, но компилятор выдает ошибку
Цитата:
argument of type 'LRESULT (MyClass:(HWND__*, UINT, WPARAM, LPARAM)' does not match 'LRESULT (*)(HWND__*, UINT, WPARAM, LPARAM)'|
Собственно, что делать? Если записывать глобальную функцию, все нормально.
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Старый 25.08.2011, 11:25   #2
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Можно, если не нужно записывать адрес глобальной функции, а только функции-члена этого класса, воспользоваться типом LRESULT (MyClass::*)(HWND__*, UINT, WPARAM, LPARAM).
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."

Последний раз редактировалось Syuf; 25.08.2011 в 11:32.
Syuf вне форума Ответить с цитированием
Старый 25.08.2011, 11:57   #3
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Цитата:
Сообщение от Granus Посмотреть сообщение
функция определена точно также.
Указатели на методы класса нельзя получать так же, как указатели на функции, указателям на методы нужен this, для его получения нужен объект класса.
Подробнее http://www.rsdn.ru/article/cpp/fastdelegate.xml
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 25.08.2011, 13:20   #4
An1ka
C++,DirectX/OpenGL
Форумчанин
 
Регистрация: 09.01.2011
Сообщений: 422
По умолчанию

Цитата:
Сообщение от Granus Посмотреть сообщение
Собственно, что делать? Если записывать глобальную функцию, все нормально.
Можно как статическую функцию внутри класса объявить.
An1ka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как передать указатель на функцию в функцию WIN32APIist Общие вопросы C/C++ 1 27.01.2011 10:35
Функция - член класса Syltan Общие вопросы C/C++ 9 06.10.2009 23:44
Указатеть на функция-член класса BioS Общие вопросы C/C++ 6 29.09.2009 00:04
помогите написать функцию-член на Си++ aka_faith Помощь студентам 0 14.06.2009 17:36
одна функция потока, а другая функция - член класса запускающего этот поток Дмитрий_Ч Общие вопросы C/C++ 2 27.09.2007 08:50