Home > front end >  C class function pointer
C class function pointer

Time:01-10

I have a request for function pointer by C . below is the sample what I need:

in API file:

class MyClass {
    public:
        void function1();
        void function2();
        void function3();
        void function4();
};

in main file:

MyClass globalglass;

void global_function_call(???)// <---- how to do declaration of argument???
{
    //Do *function
}

int main()
{
    global_function_call(&globalglass.function1()); // <----  pseudocode, I need to use global class 
    global_function_call(&globalglass.function2());
    global_function_call(&globalglass.function3());
    global_function_call(&globalglass.function4());

    return 1;   
}

I have no idea to do declaration...

CodePudding user response:

To do what you are asking for, you can use a pointer-to-member-method, eg:

MyClass globalglass;

void global_function_call(void (MyClass::*method)())
{
    (globalglass.*method)();
}

int main()
{
    global_function_call(&MyClass::function1); 
    global_function_call(&MyClass::function2);
    global_function_call(&MyClass::function3);
    global_function_call(&MyClass::function4);

    return 1;   
}

Online Demo

  •  Tags:  
  • Related