boost::shared_ptr ライブラリは非常に便利で、プログラムスタイルをまったく変えてしまいます。礼を挙げながら便利な使い方を説明しましょう。 オブジェクト指向の便利な点のひとつには、「仮想関数」を呼び出す点になります。しかし、生のポインタを扱うと、メモリリークがおきやすくなります。 たとえば、 animal *p1, *p2; p1=new dog("dog"); p1=new cat("cat");//ここで、メモリリーク! p2=p1; p1->bark(); p2->bark(); delete p1; delete p2; となってしまいます。そこで、 boost::shared_ptr<animal> p1, p2; p1=boost::shared_ptr<animal>(new dog("dog")); p1=boost::shared_ptr<anim