如何用cout打印出函数指针指向的函数名
时间: 2024-09-14 07:04:52 浏览: 33
在C++中,函数指针本身不直接存储函数名信息,因此你不能直接打印出函数指针指向的函数名。但是,你可以使用其他方式来间接获取或表示函数名。一个常见的方法是使用一个映射(map)来关联函数指针和代表其名字的字符串。下面是一个示例代码,展示如何实现这一点:
```cpp
#include <iostream>
#include <string>
#include <map>
// 假设有以下函数
void functionA() {
std::cout << "Function A" << std::endl;
}
void functionB() {
std::cout << "Function B" << std::endl;
}
int main() {
// 创建一个映射,关联函数指针和函数名
std::map<void(*)(), std::string> functionMap = {
{functionA, "Function A"},
{functionB, "Function B"}
};
// 使用函数指针打印出对应的函数名
void(*ptr)() = functionA; // 假设我们要打印的是functionA
std::cout << "Function name: " << functionMap[ptr] << std::endl;
return 0;
}
```
在上述代码中,我们创建了一个`std::map`,它的键是函数指针类型`void(*)()`,值是`std::string`类型,用于存储函数名。然后,我们可以使用函数指针作为键来获取对应的函数名字符串,并使用`cout`打印出来。
阅读全文