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);
}
MessageBoxA(0,"1","1",MB_OK);
}
после чего вызывается SomeOperation.
Все это не работает, а как правильно, не знаю ( помогите!
от наследования
Код:
class Base
{
public:
void SomeOperation()
{
...
Func();
...
}
protected:
virtual void Func() = 0;
};
class SomeClass : public Base
{
protected:
void Func()
{
...
}
};
{
public:
void SomeOperation()
{
...
Func();
...
}
protected:
virtual void Func() = 0;
};
class SomeClass : public Base
{
protected:
void Func()
{
...
}
};
до функциональных объектов
Код:
class Func
{
public:
void operator()
{
}
};
{
public:
void operator()
{
}
};
и кручения ушами
Код:
void DefaultFunc()
{
}
class SomeClass
{
public:
void SomeOperation(void (*pNewFunc)() = NULL)
{
static void (*pFunc)() = DefaultFunc;
if (pNewFunc)
pFunc = pNewFunc;
...
pFunc();
...
}
};
{
}
class SomeClass
{
public:
void SomeOperation(void (*pNewFunc)() = NULL)
{
static void (*pFunc)() = DefaultFunc;
if (pNewFunc)
pFunc = pNewFunc;
...
pFunc();
...
}
};
придумывать реализации можно пока фантазия не кончится