c++ 用函数做变量
时间: 2024-10-01 22:12:05 浏览: 28
在函数内部定义的变量-C++东南大学何洁月课件(总)
在C++中,并没有直接的概念叫做“函数作为变量”。但是,你可以通过一些间接的方式来模拟这种效果,例如:
1. **函数指针**:函数指针是一个可以存储函数地址的数据类型,它可以像普通变量一样赋值给其他变量。这样,你可以创建一个指向函数的变量并根据不同情况动态地调用不同的函数。
```cpp
void print(int x) { std::cout << "Integer: " << x << std::endl; }
void print(double y) { std::cout << "Double: " << y << std::endl; }
// 创建函数指针变量
void (*func)(int);
func = &print; // 将print函数的地址赋给func
func(5); // 输出 "Integer: 5"
func(3.14); // 输出 "Double: 3.14" (如果修改了func的指向)
```
2. **函数对象(Functors)**:C++11引入了Lambda表达式,可以创建拥有成员函数的对象,这些对象实质上就是可调用的对象,它们可以看作是“带有一组操作”的数据,可以作为函数参数传递。
```cpp
struct PrintType {
void operator()(const char* type, int value) {
std::cout << type << ": " << value << std::endl;
}
};
PrintType printInt;
printInt("Integer", 5); // 输出 "Integer: 5"
PrintType printDouble;
printDouble("Double", 3.14); // 输出 "Double: 3.14"
```
阅读全文