问题描述:
如果我们需要做一个这样的程序,当用户输入”hello”时,我调用hello函数,当用户输入”hey”时,我调用hey函数,像这样的对应关系,用户可能会有数千种输入,每种输入对应一个我需要调用的函数。
一般的方法,肯定是这样,在程序处理流程中,这样写:
[cpp] view plain copy
if (0 == strcmp(strInput, “hello”))
{
hello();
}
else if (0 == strcmp(strInput, “hey”))
{
hey();
}
else if
{
…..
这样的程序分支,写下来就是不断地重复,等你需要添加新的函数时,不得不在一个已经写得很长的函数里面不断地加else if,而且不能支持处理函数的动态添加,比如我突然觉得“hello”的输入要交给hey()函数来处理了,那我只能在编译期修改它,不能在程序运行之后再修改。
现在有一个好办法,我们可以使用函数指针来处理这些处理函数的对应关系,下面举一个例子
[cpp] view plain copy