C++ How to make function pointer to class method

前端 未结 3 992
时光说笑
时光说笑 2020-12-04 02:18

I\'m having trouble making a function pointer to a class method. I made a function pointer to a non-class method and it works fine.

int foo(){
    return 5;
         


        
3条回答
  •  我在风中等你
    2020-12-04 02:59

    A member function is quite a bit different from an ordinary function, so when you want to point to a member function you need a pointer-to-member-function, not a mere pointer-to-function. The syntax for a pointer-to-member-function includes the class that the member function is a member of:

    void (Game::*mptr)();
    

    This defines a pointer-to-member-function named mptr that holds a pointer to a member function of the class Games that takes no arguments and returns nothing. Contrast that with an ordinary function pointer:

    void (*ptr)();
    

    This defined a pointer-to-function named ptr that holds a pointer to a function that takes no arguments and returns nothing.

提交回复
热议问题