其实多态调用,总结起来很简单,
1 父类的虚方法在子类中会有拷贝,且slot一一对应
2 编译的时候,如果是变量所在类型里,该函数是虚函数,那么虚函数会形成这样的模式【实际的对象类型】+【slot偏移量】 ,其中slot偏移量对于同一个虚函数来说,他是固定的
这样在执行的时候,根据实际的类型,就形成多态调用了
如果是变量所在类型里该函数不是虚函数,在编译后一个指针,直接指向了要调用函数的地址
Powered by: 博客园 Copyright © 2024 qianyz Powered by .NET 9.0 on Kubernetes