How to call member function pointer where it is not in class itself?

76 Views Asked by At
struct CALLBACK_DATA
{
    Object *pointer;
    void (Object::*callback)();
};

int main()
{
    CALLBACK_DATA data = getData();
    //This isn't working.
    (data.pointer)->(data.*callback)();
}

Here callback pointer is not inside class Object but it is inside CALLBACK_DATA.

How to make it work?

Thank you,
Praveen Kumar.

1

There are 1 best solutions below

0
wolfie00 On BEST ANSWER

Your implementation is incorrect. It does not point to the data.callback directly. What you should do is move * here:

(data.pointer->*(data.callback))();