我想要虚拟多少钱?

Ale*_*lex 0 c++ virtual

我正在编写一个抽象的超类,其中每个方法都将被覆盖.我可以实现一些默认功能,但大多数时候它足以将实现留给子类编写器.

因为几乎所有的方法都会被覆盖,我应该多少虚拟化,我应该作为常规方法离开多少?在目前的版本中,一切都是虚拟的,但我仍然没有让任何人使用它,所以设计是灵活的.

虚拟功能有哪些优点/缺点?有关这方面的良好阅读材料的链接将不胜感激.

Pup*_*ppy 5

虚函数调用比非虚函数调用慢,但如果需要运行时多态,则别无选择.虚函数调用具有大致恒定的开销,无论您拥有多少,因此没有什么不利之处.您可以看到许多专业类的设计 - 如IDirect3D9Device-在一个类中有许多很多虚拟方法.