What is a Pointer to a Function in C++?
A pointer to a function is a variable that stores the address of a function. Yes, just like we store the address of data in a pointer, we can also store and call a function using its memory address! 🧠🔗
This is helpful when you want to choose which function to call at runtime or pass a function as a parameter. Think of it like calling a friend by their phone number. ☎️
🧠 Syntax of Function Pointer
return_type (*pointer_name)(parameter_list);
To assign a function to the pointer:
pointer_name = function_name;
To call the function using the pointer:
(*pointer_name)(arguments);
🔧 Example: Call Function Using Pointer
#include <iostream>
using namespace std;
void greet() {
cout << "Hello from a pointer!" << endl;
}
int main() {
void (*ptr)(); // Declare a pointer to function
ptr = greet; // Assign function address to pointer
(*ptr)(); // Call the function using the pointer
return 0;
}
🎯 Example: Pointer to Function with Parameters
#include <iostream>
using namespace std;
int add(int a, int b) {
return a + b;
}
int main() {
int (*ptr)(int, int); // Pointer to function that takes two ints
ptr = add;
int result = (*ptr)(5, 3);
cout << "Result: " << result << endl;
return 0;
}
📦 Bonus: Pass Function Pointer to Another Function
You can pass a function pointer as an argument to another function!
#include <iostream>
using namespace std;
void greet() {
cout << "Hi there!" << endl;
}
void runFunction(void (*funcPtr)()) {
funcPtr(); // Call the function via pointer
}
int main() {
runFunction(greet);
return 0;
}
📌 Summary
- A function pointer holds the address of a function
- You can call a function through its pointer
- You can pass a function pointer to another function
It’s like calling a function by phone 📞 — all you need is its address!