Форум программистов, компьютерный форум CyberForum.ru

Передать указатель функции через класс? - C++

Восстановить пароль Регистрация
 
pEntity
10 / 5 / 1
Регистрация: 12.12.2012
Сообщений: 371
10.06.2014, 11:57     Передать указатель функции через класс? #1
Привет.

C++
1
typedef void ( *Callback )( float* pFloat );

C++
1
2
3
4
void Func(Callback function)
{
        // other code..
}
Вызов:

C++
1
2
3
Func( MyFunc );
 
void MyFunc( float *pTest );
Не могу сделать через класс: Func( Class.MyFunc ); Как быть?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2014, 11:57     Передать указатель функции через класс?
Посмотрите здесь:

Как передать массив через указатель? C++
C++ передать функции указатель на открытый файл
Dызовом родовой функции! Нужно передать массив в качестве аргумента функции через указатель." C++
C++ В функцию-метод передать указатель на другую функцию-метод и вызвать через переданный указатель
Работа с файлом (передать указатель на файл в функцию, вернуть указатель на файл из функции) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Renji
1535 / 983 / 240
Регистрация: 05.06.2014
Сообщений: 2,963
10.06.2014, 19:34     Передать указатель функции через класс? #2
Не могу сделать через класс: Func( Class.MyFunc ); Как быть?
1) Class::MyFunc
2) Объявить MyFunc static
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.06.2014, 20:36     Передать указатель функции через класс? #3
MyFunc() - это метод класса? Если да, то указатель на метод класса - это не указатель на функцию.
Renji
1535 / 983 / 240
Регистрация: 05.06.2014
Сообщений: 2,963
10.06.2014, 21:06     Передать указатель функции через класс? #4
MyFunc() - это метод класса? Если да, то указатель на метод класса - это не указатель на функцию.
Статический метод класса - функция и есть.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.06.2014, 21:09     Передать указатель функции через класс? #5
Цитата Сообщение от Renji Посмотреть сообщение
Статический метод класса - функция и есть.
Я где-то упомянул статический метод? Renji, вопрос не к вам, а к ТС.
pEntity
10 / 5 / 1
Регистрация: 12.12.2012
Сообщений: 371
12.06.2014, 19:05  [ТС]     Передать указатель функции через класс? #6
alsav22, да, это метод класса. А как быть?
Renji
1535 / 983 / 240
Регистрация: 05.06.2014
Сообщений: 2,963
12.06.2014, 19:07     Передать указатель функции через класс? #7
Объявить метод как static. Вот прямо так и писать static void MyFunc...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.06.2014, 19:10     Передать указатель функции через класс?
Еще ссылки по теме:

C++ Как передать указатель на функцию через метод класса ?
C++ Вызов виртуальной функции через указатель на базовый класс
Перезагрузить оператор cout, объекты класса передать через указатель и C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
pEntity
10 / 5 / 1
Регистрация: 12.12.2012
Сообщений: 371
12.06.2014, 19:10  [ТС]     Передать указатель функции через класс? #8
C++
1
2
3
typedef void ( *FuncCallback )( float* pflVariable );       
 
Func( FuncCallback function );
И есть класс:

C++
1
2
3
4
5
class CTest
{
    public:
        void Test( float *pflVar );
};

И вот не выходит сделать так:

C++
1
Func( CTest::Test);
А если
C++
1
 void Test( float *pflVar );
вне класса, всё гуд.
Yandex
Объявления
12.06.2014, 19:10     Передать указатель функции через класс?
Ответ Создать тему
Опции темы

Текущее время: 07:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru