今天高人指点我用来一个C++类似C语言中的函数指针的东西。
在头文件#include <functional>中。
实质就是把函数存在某个位置当条件不同执行不同的函数。例子是个简单的用法,在实际项目中要比这个复杂的多。
代码:
#include <functional>
#include <iostream>
#include <vector>
using namespace std;
void app(int a)
{
std::cout << "a = " << a << std::endl;
}
void app01(int b)
{
std::cout << "b = " << b << std::endl;
}
int main()
{
std::function<void(int&)> func;
int a;
std::cin >> a;
if (a < 10)
{
func = [a](int &a) {return app01(a); };
}
else {
func = [a](int &a) {return app(a); };
}
func(a);
std::cout << "********************************" << std::endl;
std::vector<std::function<void(int&)> > funcs;
funcs.push_back([a](int &a) {return app(a); });
funcs.push_back([a](int &a) {return app01(a); });
int aa = 12;
int bb = 13;
funcs[0]((aa));
funcs[1]((bb));
return 0;
}