C++ Function Pointers

  1. What is function pointer

    Function pointer is just a pointer to a function. You can then call function from a pointer or you can pass it to another function to call it from there.

  2. How to write function pointer

    You can get function pointer using auto keyword and funciton name without ()

    #include <string>
     
    void log(std::string str){
        std::cout << str << std::endl;
    }
     
    auto function = log;

    or you can use function pointer type that looks like this:

    // return_type (*Function_Ptr_Name) (parameter type, ...)

    here is in code

    #include <string>
     
    void log(std::string str){
        std::cout << str << std::endl;
    }
    void (*function) (std::string) = log;

    To use call function from pointer we just use pointer name and ()

    #include <string>
     
    void log(std::string str){
        std::cout << str << std::endl;
    }
    void (*function) (std::string) = log;
    function();

    You can also pass function pointer to another function

    #include <string>
     
    void log(std::string str){
        std::cout << str << std::endl;
    }
    void anotherFunc(void (*func) (std::string)){
        std::cout << "Hello world" << std::endl;
        func("world");
    }
     
    void (*function) (std::string) = log;
    anotherFunc(function);