我遇到了模板元数据编程中的一项技术,该技术允许在没有虚拟功能机制的情况下实现多态。

因此,我想知道是否还有其他技巧可以用来在c ++或C#中进行多态行为?

编辑:也是前一段时间,我读到访问者设计模式是虚拟机制的替代方法,但无法回忆起这篇文章。有人可以确认它也可以使用吗?

EDIT2:我知道这不是理想的编程实践,但是hack是我正在寻找的东西,因为最主要的问题是优化。类层次结构是在编译时分配的(在运行时,if-else逻辑未将指针分配给类)。

最佳答案

您是否想知道为什么多态性每次使用都会增加大约4个字节的开销?这是因为这是实现多态的最简单,最实用的方法。可能有怪诞的骇客可以用较少的开销模拟C ++ / C#/ Objective-C多态性,但是它们却具有很大的权衡-例如,每次调用的CPU使用率是其几倍,或者是扩展性有限的静态存储的类层次结构。

多态性是通过实现方式实现的,因为实现方式已经是最佳的。

关于c# - 技术实现了多态性,但节省了4个字节,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5557354/

10-13 07:01