是的,在虚拟函数上使用内联是浪费时间。必须通过由函数指针组成的虚函数表来调用虚函数。内联函数不能由指针调用。它必须作为实函数存在。
但也有一些例外。当调用者知道确切的对象类型时,它可以完全跳过虚拟函数表。
过度使用 virtual 关键字可能会导致代码非常慢。编译器可能能够内联和优化三个或四个小函数调用,而对于虚拟函数,它必须执行实际的函数调用,而不对调用之间的内存或寄存器状态做出任何假设。
| 归档时间: |
|
| 查看次数: |
2450 次 |
| 最近记录: |