将类型相互关联

时间:2014-03-28 12:28:11

标签: c++ c map

我有一个Action类,我可以从中派生几个子类型。现在,我需要以一对多的关系将这些子类型中的一些相互关联起来。这个想法是某些类型的Action子类型将使其他子类型可用/不可用(即我还需要动态创建它们)。因为在像C ++这样的语言中你不能存储类型变量,唯一有意义的是字符串类型名的关联。

有没有人遇到类似的情况?如果是这样,你会简单地使用像std::multimap这样的非唯一关联容器,然后手动硬编码一个巨大的switch语句来进行字符串类型的关联吗?

示例:类型Attack的操作最终会使Retreat可供其参与者以及其他人使用,例如Charge等。每个动作构造函数至少需要一个Actor引用,但它也可能需要其他未知的编译时参数。最后一点使得将其建模为决策/动作树非常困难......换句话说,似乎我必须在运行时构建决策树。

0 个答案:

没有答案