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

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

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

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

10.06.2014, 11:57. Просмотров 285. Ответов 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 ); Как быть?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2014, 11:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Передать указатель функции через класс? (C++):

Вызов родовой функции (нужно передать массив в качестве аргумента функции через указатель) - C++
#include <iostream> using namespace std; template <class T1> class mas { public: T1 n; T1 a; void input() ...

Вызов виртуальной функции через указатель на базовый класс - C++
Всем привет! Помогите пожалуйста разобраться с вызовом виртуальной функции в программе. В моей программе требуется организовать класс...

Передать в DLL указатель на класс - C++
В основной программе хочю сделать чтото типа class fprognoz { public: double End_chen; int rezult; __int64 ...

Работа с файлом (передать указатель на файл в функцию, вернуть указатель на файл из функции) - C++
Подскажите как передать указатель на файл в функцию, как вернуть указатель на файл из функции. void Open() // из этой функции вернуть...

Как передать массив через указатель? - C++
Народ, такая проблема: при передаче в функцию массива через указатель, вся информация теряется и замещается бредом каким то, вот выдержка...

Как правильно передать массив через указатель? - C++
#pragma once #include <vector> class TOMathModel { public: TOMathModel(void); ~TOMathModel(void);

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

В функцию-метод передать указатель на другую функцию-метод и вызвать через переданный указатель - C++
Друзья! Всем привет. Вот код: class otets { public: void f (void (otets::*p)()); private: void echo_f (){}; ...

Передать функции указатель на открытый файл - C++
как функции передать указатель на открытый файл??? int main() { ifstream file("file.txt",:in); func(&file); ...

Как передать указатель на функцию через метод класса ? - C++
typedef void (*FuncCallback)(float* flValue); Пробовал по всякому и ни как: Class.CallFunc // error C3867: CClass::CallFunc :...

Передать значение из одного класса в другой через указатель - C++
Я не могу додуматься что тут не так class Car { private: int weight; public: Car(int w) { weight=w; }


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

Или воспользуйтесь поиском по форуму:
8
Yandex
Объявления
12.06.2014, 19:10
Ответ Создать тему
Опции темы

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