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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
pEntity
10 / 5 / 1
Регистрация: 12.12.2012
Сообщений: 373
#1

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

10.06.2014, 11:57. Просмотров 253. Ответов 7
Метки нет (Все метки)

Привет.

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

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

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

Или воспользуйтесь поиском по форуму:
pEntity
10 / 5 / 1
Регистрация: 12.12.2012
Сообщений: 373
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     Передать указатель функции через класс?
Ответ Создать тему
Опции темы

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