Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вызов функции по сылке

4.4K
08 февраля 2008 года
erzik
47 / / 08.04.2006
Здраствуйте.
Возникла такая проблема: есть класс, в котором есть переменная под указатель на функцию. эту функцию позднее надо вызвать в коде... Как передать сылку на функцию и как это все объявить?
Вот наброски, но не работает:
Код:
class SomeClass{
private:
   static void *func;
private:
   void GetMyFunc(void *my_func){
       func = my_func;
   }
   void SomeOperation(){
       ...
       func;
       ...
   }
};

void *SomeClass::func;

В программе сначала инициализируется переменная данного класса, потом вызывается ф-я GetMyFunc, в которую передается сылка на существующую ф-ю:
 
Код:
void TestFunction(){
    MessageBoxA(0,"1","1",MB_OK);
}

после чего вызывается SomeOperation.

Все это не работает, а как правильно, не знаю ( помогите!
260
08 февраля 2008 года
Ramon
1.1K / / 16.08.2003
Способов уйма.

от наследования
Код:
class Base
{
public:
    void SomeOperation()
    {
        ...
        Func();
        ...
    }

protected:
    virtual void Func() = 0;
};

class SomeClass : public Base
{
protected:
    void Func()
    {
        ...
    }
};


до функциональных объектов
 
Код:
class Func
{
public:
    void operator()
    {
    }
};


и кручения ушами
Код:
void DefaultFunc()
{
}

class SomeClass
{
public:
    void SomeOperation(void (*pNewFunc)() = NULL)
    {
         static void (*pFunc)() = DefaultFunc;
         
         if (pNewFunc)
             pFunc = pNewFunc;
         ...
         pFunc();
         ...
    }
};


придумывать реализации можно пока фантазия не кончится
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог