可能重复:
Does C++ virtual function call on derived object go through vtable?
我有一个关于c ++虚拟表的问题,特别是对于gcc。考虑以下代码
class A{
public:
virtual void doSomething(){}
}
class B : public A{
public:
virtual void doSomething(){}
}
//1
A* a = new A()
a->doSomething();
现在的问题是,既然指针a指向A的对象,那么编译器是否会在虚拟函数中进行查找,或者它是否足够聪明以解决这个问题并使用虚拟表废话逃脱。?
感谢