虚函数机制为C++提供了动态特性,那么它一定会带来开销,主要是一下方面
虚函数表的维护
虚函数表其实是一个指针数组,会增加内存的开销
函数调用的开销
调用虚函数的时候,通过虚函数表来查找函数调用的地址,间接的方式,肯定会增加开销
可能影响的优化
函数静态绑定的时候就是编译的时候就确定,从而进行内联优化,对于虚函数的话
只能在运行的时候动态绑定,导致优化的机会没有了
虚函数机制为C++提供了动态特性,那么它一定会带来开销,主要是一下方面
虚函数表其实是一个指针数组,会增加内存的开销
调用虚函数的时候,通过虚函数表来查找函数调用的地址,间接的方式,肯定会增加开销
函数静态绑定的时候就是编译的时候就确定,从而进行内联优化,对于虚函数的话
只能在运行的时候动态绑定,导致优化的机会没有了