您的位置:首页 > 编程语言 > C语言/C++

Function Table 函数指针表

2016-06-30 10:57 323 查看
定义一个函数表类,包含一个 vector 成员
funcList


问题是,如何定义函数指针? 如下所示,
f
即为函数指针。

vector<void (*)()> funcList;

void add(void (*f)() );


#include <iostream>

#include <vector>

using namespace std;

#define DF(N) void N() { \

cout << "function " #N " called..." << endl; }

DF(a); DF(b); DF(c); DF(d); DF(e); DF(f); DF(g);

class FuncTable {

vector<void (*)()> funcList;

public:

FuncTable() {}

void add(void (*f)() ) {

funcList.push_back(f);

}

void remove() {

funcList.pop_back();

}

void run(){

for (void (*f)(): funcList) {

(*f)();

}

}

};

int main() {

FuncTable ft;

ft.add(a);

ft.add(b);

ft.add(c);

ft.add(d);

ft.add(e);

ft.add(f);

ft.add(g);

ft.run();

ft.remove();

ft.remove();

cout << endl;

ft.run();

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ 指针 函数