特に gcc の c++ 仮想テーブルについて質問があります。次のコードを検討してください
class A{
public:
virtual void doSomething(){}
}
class B : public A{
public:
virtual void doSomething(){}
}
//1
A* a = new A()
a->doSomething();
問題は、ポインター a が A のオブジェクトを指しているので、コンパイラーは仮想関数でわざわざルックアップを行うのか、それともこれを解決して仮想テーブルのがらくたを回避するのに十分スマートなのかということです。
ありがとう