仮想関数は位置に依存しないコードでどのように実装されますか?
クラスに仮想関数がある場合、コンパイラは通常、すべての仮想関数のアドレスを含むvtableを生成し、クラスの各オブジェクトにvtableへのポインタを格納することを知っています。
さて、私のコードが位置に依存しない場合、コンパイラーは仮想関数(または、さらに言えば、任意の関数)のアドレスを知ることができません。それで、それは何をしますか?
実際のコンパイラが何をするのか知りたいです(理論的に可能なことではありません)。私は主にLinux32ビットプラットフォームに興味がありますが、他のプラットフォームも少し興味深いものです。