我编写了一个非常基本的表达式解析器,我希望它是可扩展的,因此它可以解析用户定义的表达式类型。例如,如果在解析时遇到字符<
,我想创建一个用于解析以该字符开头的表达式的类的实例。
我有两个问题:
如何将字符关联到静态方法指针?
我想使用一个静态方法来返回类的新实例,因为我无法获得指向类构造函数的指针。以下语法可能是错误的,但这就是想法:
typedef static IValue * (*returnPtrIValue)(); map<char, returnPtrIValue> ...
假设我有 A 类,B 类扩展 A 类,我可以初始化一个指向函数的指针,该函数返回指向 A 的指针/引用,并使用指向返回指向 B 的指针/引用的函数的指针,因为 B 是 A?
例如,我可以这样做:
typedef A * (*returnPtrA)(); B * func() { ... } returnPtrA foo = func;