#include <stdio.h>
class CScanner
{
public:
void Func1() { printf("F(1) "); }
void Func2() { printf("F(2) "); }
void Func3() { printf("F(3) "); }
// ...
void Parse(char Token[]);
};
struct FuncItem
{
int FuncID;
void (CScanner::*Func)();
};
FuncItem FuncTable[] =
{
1, CScanner::Func1,
2, CScanner::Func2,
3, CScanner::Func3,
// ...
-1, NULL,
};
void CScanner::Parse(char Token[])
{
while (*Token)
{
FuncItem* p = FuncTable;
int ID = *Token - '0';
while (p->Func != NULL)
{
if (p->FuncID == ID)
break;
p++;
}
if (p->Func != NULL)
(this->*(p->Func))();
Token++;
}
}
void main()
{
CScanner s;
s.Parse("a123b321c");
}
如何在类中使用成员函数指针数组
最新推荐文章于 2022-12-28 14:11:28 发布