Сообщение от HolyDel
делай метод статичным. подумай сам - у какого именно объекта должны вызваться функция, если у тебя их будет 42?
|
Для вызова используются два указателя: на метод и на экземпляр класса. Я же уже писал:
http://forum.boolean.name/showthread.php?t=15043
цель:
class MyCl{
private:
MyStr ControlThread;
void func1(WORD,void*,void*); //<---- хочу вызвать вот это
void func2(WORD,void*,void*);
void func3(WORD,void*,void*);
public:
MyCl();
~MyCl();
}
указтели:
MyCl *ParentInterface;
void (MyCl::*FunctionPtr)(WORD,void*,void*);
Получение
адреса (? вообще костыльно выглядит - фактически по имеющимся данным [без указания конкретного экземпляра класса] можно восстановить только смещение до функции внутри класса, поэтому адрес, вероятно, относительно начала адреса экземпляра) метода (указатель на класс получается как обычно):
FunctionPtr=&MyCl::func1;
вызов (вызываю функцию с адресом FunctionPtr [здесь это
func1] из экземпляра с адресом ParentInterface ):
(ParentInterface->*FunctionPtr)(0,0,0);
upd поправил код