本当に回答どうもありがとうございました
>>969
いえ、本の中ではオーバーライドされていませんでした。

>>971
試しに2,3のクラスで使用してみたところ、どうもoffsetの値は
0になるようでした。
説明不足だったので申し訳ありませんがSingletonクラスは
たとえば class CTextureMgr: public ISingleton<CTextureMgr>
のように使うようです。はっきり言って私の頭ではこれだけでもチンプンカンプンですが、
無理やり自分を納得させるため次のように考えてみました。
クラステンプレートはコンパイル時に展開?されるために、本来ならば
ベタに同じことを書いたクラスのサイズと一致しなければならないが、
コンパイラによってはそうならないかもしれない。
そのための保険としてオフセットを求め、それをスタティックな変数(シングルトン)
に代入している。
…思いっきり見当はずれなことを言ってるかもしれませんね