コンストラクタ は、protectedに,
デストラクタは、virtual で public に
というクラス定義がありますが、これは
どういう理由でこのようにしているのでしょうか?