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

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

Войти
Регистрация
Восстановить пароль
 
rus_phantom
6 / 6 / 1
Регистрация: 31.03.2011
Сообщений: 69
#1

Вызов функции класса по каллбеку - C++

19.12.2012, 07:59. Просмотров 338. Ответов 1
Метки нет (Все метки)

Хочу реализовать возможность вызова метода класса по каллбеку. Сделал такой класс:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class ICallable {
public:
                                ICallable               ();
    virtual                     ~ICallable              ();
    void                        CallbackSet             (void (ICallable::* pMethodPointer)(), ICallable *pInstance);
    void                        Call                    ();
private:
    (ICallable::* m_MethodPointer)();
    ICallable *m_Instance
};
 
void ICallable::CallbackSet(void (ICallable::* pMethodPointer)(), ICallable *pInstance)
{
    m_MethodPointer = pMethodPointer;
    m_Instance = pInstance;
}
 
void ICallable::Call()
{
    m_Instance->m_MethodPointer;
}
В m_Instance хранится указатель на класс, метод которого мы будем вызывать, а в m_MethodPointer указатель на метод этого класса, который мы будем вызывать. Однако компилятор ругается на строку: (ICallable::* m_MethodPointer)();

..\src\/Callable.h:18: error: ISO C++ forbids declaration of 'm_MethodPointer' with no type
В чем проблема?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2012, 07:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вызов функции класса по каллбеку (C++):

Вызов функции из класса - C++
есть функция объявленная в классе Calendar void calendar::menu_k() { cout<<"\n\n"; set_color(cGREEN); cout<<"МЕНЮ"<<endl; ...

Вызов функции вне класса - C++
Есть класс, в нем два метода. В одном из них надо вызвать функцию, которая расположена вне класса. Как зделать?? Можете на примере...

Вызов функции по указателю из класса - C++
Такой расклад. Допустим имеем код: #include <iostream> using namespace std; template <class _Tp> class my_mem_fun_t { ...

Вызов функции в шаблоне класса - C++
Выполняю,через шаблоны класса. Вообщем,в меню не могу вызвать функции. Скажите,все ли правильно в вызове функций? вот файл .h ...

вызов статичной функции класса - C++
Добрый день. Не могу изменить класс так, чтобы можно было вызывать функцию непосредственно из класса не создавая новый объект класса. ...

Вызов функции класса. Чего-то не допонял - C++
1>d:\с++ файл\1.5.1\1.5.1\1.5.1.cpp(136): error C2352: Man::ChangeName: недопустимый вызов нестатической функции-члена 1> d:\с++...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
19.12.2012, 09:13 #2
Тип возвращаемого значения забыли указать. И точку с запятой после m_Instance;
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.12.2012, 09:13
Привет! Вот еще темы с ответами:

Вызов глобальной функции из объекта класса - C++
Здравствуйте! Допустим, к примеру, имеется класс, который может хранить в себе адрес на функцию, а также метод который "запустит" эту...

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

Вызов функции родительского класса в наследнике - C++
Подскажите, пожалуйста, можно ли вызвать функцию родительского класса если в наследнике уже есть функция с таким же именем? Если да, то как...

Вызов функции из основного класса в наследуемом - C++
Есть класс. По нему создан наследственный класс. Как использовать функцию из основного класса в наследственном?


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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