这是一个c ++问题。我们希望有2个实用程序函数,它们具有不同的实现,具体取决于某个参数,在运行时,确定应该根据此参数调用哪个实现,哪种设计在内存使用和性能方面最佳?我们正在考虑两种方法,但我们无法确定在以下两种方法中获得的改进: - 为这两个实用程序函数定义一个接口,并有多个类扩展它们,然后我们创建一个包含这些类实现的实例的映射(急切初始化) - 将一个类中的所有这些函数定义为静态函数,并使用函数指针
调用它们答案 0 :(得分:2)
虚拟继承通常是使用函数指针实现的,所以你的两个想法归结为相同的东西(从编译器的角度来看)。
在第二个想法,你正在考虑一个像函数调用一样基本的东西的表现。您是否100%确定您正在优化作为瓶颈的部件?在优化时非常容易偏离,并且在对性能有0或1%影响的事情上花费数天时间。所以坚持黄金法则:证明哪一部分真的让你失望。如果你为它编写测试,那么测试两个解决方案并获得更快的结果将变得很容易。