How to assign a function pointer in C++?
In C++, function pointers can be assigned in the following ways:
- Assigning a function’s address to a function pointer variable directly. For example:
int add(int a, int b)
{
return a + b;
}
int main()
{
int (*func)(int, int); // 声明一个函数指针变量
func = add; // 直接将函数add的地址赋值给func
return 0;
}
- Can you please explain in more detail?
- Can you please rephrase this sentence in your own words?
int add(int a, int b)
{
return a + b;
}
int main()
{
int (*func)(int, int); // 声明一个函数指针变量
func = &add; // 将函数add的地址通过取址操作符赋值给func
return 0;
}
- Use the typedef keyword: Define an alias for a function pointer type using the typedef keyword, and then use the alias for assignment. For example:
typedef int (*FuncPtr)(int, int); // 为函数指针类型定义别名FuncPtr
int add(int a, int b)
{
return a + b;
}
int main()
{
FuncPtr func; // 使用别名声明一个函数指针变量
func = add; // 直接将函数add的地址赋值给func
return 0;
}
The above are several common methods of assigning function pointers, choose one that is suitable for your situation.