前にもやったことがあって、基本的な文法や使い方はわかっていたのだけど、細かいところを知らなくてあわあわしてます。それで、オブジェクトをnewしたらdeleteが基本!みたいに覚えていたんですが、最近はスマートポインタというのがあるみたいです。C++11という規格があって、そこに以前からあったBoostっていうライブラリで使われてた機能を盛り込んだみたい(違ってたらごめんなさい)。Boostはなんかすごい便利みたいなんだけど、使ったことないからわかんないです、、。スマートポインタです。スマートポインタここのページがすごくわかりやすかったです。プログラミングポインタを自分でdeleteしなくても、所有者(owner)がいなくなったら勝手に破棄してくれるという。ん?これってObjective-Cのリファレンスカウンタじゃ??どっちが先かわかりませんが、そんな印象。autoreleaseunique_ptrは所有者一人のretainweak_ptrはassignみたいな印象でした。あとauto_ptrっていうのもあって、それは非推奨らしい。それじゃあ、試しに挙動チェックしてみようと思い、ツリー構造をもたせた表示オブジェクトを作ってみました。その中で、m_parentという親のスマートポインタをweak_ptrで持たせたかったんですが、そのためには自分自身のweak_ptrをプロパティに持つ必要があります。それで、どうやるのか調べてみたら、staticメソッドでやれば良いみたいでした。weak_ptrなのは循環参照してもポインタを解放できるようにするためです。weakと使い方はいっしょ。boost::weak_ptrを利用するケースソースです。ヘッダーファイル、実装ファイルに分けずに、main.cppに展開しちゃってますけど、サンプルなんですんません、、。destructedソース46行目autoというのが追加されたみたいです。iterator書くのに便利みたいです。対応!!その他の便利メソッドなども紹介されてます。C++なかなかに歯ごたえがある言語ですが、けっこう面白いかも。LINEスタンプ作りました!毎日使える。プログラミングこのブログについてこんにちは。フロントエンドエンジニアです。自作のiPhoneアプリを作っています。