Search code examples
c++pointer-to-member

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


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.


Solution

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

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