有人能告诉我如何初始化函数指针的Vector。
void a(){cout << "godzilla_1";}
void b(){cout << "godzilla_2";}
void c(){cout << "godzilla_3";}
void d(){cout << "godzilla_4";}
vector<void(*)()> funcs = {a, b, c, d};
这给了我一个错误。在C ++ 98中,你不能像这样初始化。
请给我一个简单的例子。
答案 0 :(得分:3)
您可能不会在c ++ 11之前使用初始化列表。以下将起作用
#include <iostream>
#include <vector>
void a(){std::cout << "godzilla_1";}
void b(){std::cout << "godzilla_2";}
void c(){std::cout << "godzilla_3";}
void d(){std::cout << "godzilla_4";}
int main() {
std::vector<void(*)()> funcs;
funcs.push_back(a);
funcs.push_back(b);
funcs.push_back(c);
funcs.push_back(d);
funcs.front()();
return 0;
}
答案 1 :(得分:0)
C ++ 98:
funcs.push_back(a);
funcs.push_back(b);
funcs.push_back(c);
funcs.push_back(d);
答案 2 :(得分:0)
最好的办法是使用数组:
void (*funcs[])() = {a, b, c, d};