我有一个Action
类,我可以从中派生几个子类型。现在,我需要以一对多的关系将这些子类型中的一些相互关联起来。这个想法是某些类型的Action
子类型将使其他子类型可用/不可用(即我还需要动态创建它们)。因为在像C ++这样的语言中你不能存储类型变量,唯一有意义的是字符串类型名的关联。
有没有人遇到类似的情况?如果是这样,你会简单地使用像std::multimap
这样的非唯一关联容器,然后手动硬编码一个巨大的switch语句来进行字符串类型的关联吗?
示例:类型Attack
的操作最终会使Retreat
可供其参与者以及其他人使用,例如Charge
等。每个动作构造函数至少需要一个Actor
引用,但它也可能需要其他未知的编译时参数。最后一点使得将其建模为决策/动作树非常困难......换句话说,似乎我必须在运行时构建决策树。