コンストラクタ内での仮想関数の呼び出しはしちゃ駄目ー!

コンストラクタが完了するまでは仮想関数の解決は基底クラスに従って行われます。
なので、呼ばないようにしましょう。

解決策としては、initialize()関数を作って、そのなかで、仮想関数を呼ぶようにします。
オブジェクトを構築直後にinitialize()を呼び出すようにします。