#include <iostream>
void Foo() { std::cout << "Foo" << std::endl; }
void Bar() { std::cout << "Bar" << std::endl; }
void FooBar(){ std::cout << "FooBar" << std::endl; }
void Baz() { std::cout << "Baz" << std::endl; }
void FooBaz(){ std::cout << "FooBaz" << std::endl; }
int main()
{
void (*pFunc[])() = {Foo, Bar, FooBar, Baz, FooBaz};
int choice;
std::cout << "Which function: ";
std::cin >> choice;
std::cout << std::endl;
pFunc[choice]();
// or iteratley call them all:
std::cout << "calling functions iteraely:" << std::endl;
for(int i(0); i < 5; i++)
{
pFunc[i]();
}
std::cout << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdm9pZCBGb28oKSAgIHsgc3RkOjpjb3V0IDw8ICJGb28iICAgIDw8IHN0ZDo6ZW5kbDsgfQp2b2lkIEJhcigpICAgeyBzdGQ6OmNvdXQgPDwgIkJhciIgICAgPDwgc3RkOjplbmRsOyB9CnZvaWQgRm9vQmFyKCl7IHN0ZDo6Y291dCA8PCAiRm9vQmFyIiA8PCBzdGQ6OmVuZGw7IH0Kdm9pZCBCYXooKSAgIHsgc3RkOjpjb3V0IDw8ICJCYXoiICAgIDw8IHN0ZDo6ZW5kbDsgfQp2b2lkIEZvb0JheigpeyBzdGQ6OmNvdXQgPDwgIkZvb0JheiIgPDwgc3RkOjplbmRsOyB9CgoKaW50IG1haW4oKQp7CgogICAgdm9pZCAoKnBGdW5jW10pKCkgPSB7Rm9vLCBCYXIsIEZvb0JhciwgQmF6LCBGb29CYXp9OwoKICAgIGludCBjaG9pY2U7CiAgICBzdGQ6OmNvdXQgPDwgIldoaWNoIGZ1bmN0aW9uOiAiOwogICAgc3RkOjpjaW4gPj4gY2hvaWNlOwogICAgc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbDsKCiAgICBwRnVuY1tjaG9pY2VdKCk7CgoKICAgIC8vIG9yIGl0ZXJhdGxleSBjYWxsIHRoZW0gYWxsOgoKICAgIHN0ZDo6Y291dCA8PCAiY2FsbGluZyBmdW5jdGlvbnMgaXRlcmFlbHk6IiA8PCBzdGQ6OmVuZGw7CgogICAgZm9yKGludCBpKDApOyBpIDwgNTsgaSsrKQogICAgewogICAgICAgIHBGdW5jW2ldKCk7CiAgICB9CgogICAgc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbDsKICAgIHJldHVybiAwOwp9Cg==