基本密新行为考虑现有的C++类层次结构:一个根类,很多孩子班级形成了向无环图。如何代表C++
我想一个方法添加到根类,并可能覆盖它在一些儿童。 但问题是,它是被禁止的,我修改这些现有的类(第三方库,项目政策,封闭源代码,等等)。然后
一个混合/扩展类将是一个很好的解决方案。但它在C++中并不可行。
的快速和肮脏的解决方案是将写上使用 的的dynamic_cast操作员,以及执行想要的代码给每个类型的层次结构的对象的类型将调度功能。但这是一种不好的做法,因为 它容易出错,它破坏了封装,并且不支持安全的将来更改。
我的想法与定义保持某种哈希表的地方{RTTI类型ID,功能调用}”,并用它作为 一个假的虚函数表因为我想写的功能和重写但我不知道这是否会更好......
任何其他的想法运行虚函数表改造模板元编程解决方案的其他
不要忘了:????我明确不能改变原来的类(既没有标题也没有实现)。
好吧,然后我将使用std :: map系统。感谢advince :: before。 –
2011-04-18 18:03:31