c++怎么给函数指针赋初值
时间: 2023-08-20 09:05:44 浏览: 141
C++指针与内存管理.doc
在C++中,可以通过将函数的地址赋给函数指针来给函数指针赋初值。以下是几种常见的给函数指针赋初值的方式:
1. 直接赋值:将函数的地址直接赋给函数指针变量。
```cpp
// 函数原型
void myFunction();
// 定义函数指针类型
typedef void (*FunctionPtr)();
int main() {
// 定义函数指针变量并赋初值
FunctionPtr ptr = myFunction;
// 通过函数指针调用函数
ptr();
return 0;
}
// 定义函数
void myFunction() {
// 函数体
}
```
2. 使用取地址符 `&`:使用取地址符 `&` 获取函数的地址,并将其赋给函数指针变量。
```cpp
// 函数原型
void myFunction();
// 定义函数指针类型
typedef void (*FunctionPtr)();
int main() {
// 定义函数指针变量并赋初值
FunctionPtr ptr = &myFunction;
// 通过函数指针调用函数
ptr();
return 0;
}
// 定义函数
void myFunction() {
// 函数体
}
```
3. 使用 `std::function`(C++11):使用 `std::function` 类模板可以更灵活地管理回调函数。可以将函数、函数指针、lambda表达式等作为 `std::function` 的参数。
```cpp
#include <iostream>
#include <functional>
// 函数原型
void myFunction();
int main() {
// 定义函数指针变量并赋初值
std::function<void()> func = myFunction;
// 通过函数指针调用函数
func();
return 0;
}
// 定义函数
void myFunction() {
// 函数体
}
```
无论使用哪种方式,都可以将函数的地址赋给函数指针,以便后续通过函数指针调用函数。
阅读全文