boostといえばスマートポインタ。 C言語からC++に移るときに最も感動したものがスマートポインタだったと思います。 スコープから抜けるときに誰からも参照されなくなったオブジェクトを自動的にdeleteしてくれるポインタクラスですね。 class Hoge{ ... }; int main() { shared_ptr< int > a( new int( 1 ) ); shared_ptr< Hoge > b( new Hoge() ); cout << *a << endl; b->...(); //適当なメソッド return 0; }//←ここでdeleteされる このように使えるスマートポインタsmart_ptrを実装してみましょう。 とりあえず、最低限必要な機能だけを。 コンストラクタで様々な型のインスタンスを格納する。 ポインタ偽装。operator*、operator->