非虚函数—以及明确不是虚函数的constructor—是不会存在虚函数列表当中的,会像一般的C函数那样被实现,所以它们的使用并没有什么特殊的性能考虑。

    虚函数的第一个成本是:必须为每一个虚函数的class耗费一个vtbl空间,其大小视虚函数的个数(包括继承而来的)而定,这意味着如果类中拥有大量的虚函数,或继承的类中有大量的虚函数,那么vtbls(虚函数表)会占用大量的内存空间。虚函数的第二个成本是:必须在每一个拥有虚函数的对象内付出“一个额外指针”的代价。较大的对象意味着较难塞入一个缓存分页(cache page)或虚内存分页(virtual memory page)之中,也就意味着你的换页(paging)活动可能会增加。