私はC++プロジェクトで自動的にメモリを処分したいと思います。自動C++メモリ/オブジェクトインスタンス管理?スマートポインタ?
私はこの自動メモリ処分を得るためにいくつかの規則を追加しても構いません。具体的には、新しいオブジェクトインスタンスを作成する際に特別なコーディングをしても構いません(もちろん、目的を破るように)。
stackoverflowでの多くの有用な議論の一部を読んだ後に、「スマートポインタ」が最も多く参照されていることがわかりました(サードパーティ製のC++ガベージコレクタのリファレンスとともに)。
「教科書」C++の知識がいくつかあるだけで、私はC++ GCの複雑さが私の場合には使用価値がないと信じています。
一方、私は.NET/Javaのバックグラウンドを持っており、この経験をC++でも活用したいと考えています。私は、オブジェクトインスタンスを作成し、それを他のクラス/関数に渡すことに慣れています(これはC++のパンとバターの一部です)。
私は探しているスマートポインタ/ shared_ptr/boostですか?
(メモリが獲得のため、私はMyClass* var = new MyClass()
、ないmalloc()
をやって意味あることに注意してください。)
いくつかの特定の背景:
は、実際に私は正確にやろうとしています何をどのことができますいくつかのライブラリ関数を書くことですC++プロジェクトとiPhoneプロジェクトの両方で使用できます(これらは純粋に論理的なビジネスクラスなので、移植性の問題はありません)。私はそれが高性能(iPhoneの非ゲームアプリ)を必要とする領域ではないと信じていますが、私はリソースの使用にいくつかの懸念があります。
スマートポインタを使用する際に問題がありますか?より良い選択肢はありますか?
shared_ptrの動作はまったく同じではありませんか?このように多くのパフォーマンス上の利点がありますか? – kossmoboleat