を使用して関数を作成し、破壊し、それが提供しています。createObject(...)
とdestroy(...)
を。私はそれをいくつかのより現代的な建設/破壊の仕組みに包み込み、スマートな指針でそれらを使用したいと思います。私はある時点でオブジェクトを破壊することを忘れてしまったり、何か例外が発生したりするのではないかと恐れています。ラッピングCは、私は、オブジェクトの作成と破棄を扱ういくつかのC APIを持つスマートポインタ
私はshared_ptr
のカスタムディレクター機能を認識していますが、createOjbect
関数が初期化を処理するため、new
を明示的に呼び出すことはできません。
この場合、STLスマートポインタを使用できますか?この状況では、コンストラクタでの初期化、デストラクタでの破壊、参照カウントを実装するクラスを最初から実装する必要がありますか?
:私は、このオブジェクトは、多くの宮殿で共有したいので、私は共有ポインタを使用して、それを包んアキラの提案@に基づいて
、およびラムダあなたのクラスのrefカウンター?コンストラクタでcreateObjectを呼び出し、デストラクタで破棄し、クラスにスマートポインタを返す静的ファクトリ関数を提供するだけです。スマートポインタがrefcounter部分を処理します。あなたのクラスが最終的に破棄されると、自動的に破壊が呼び出されます –
createObjectは何を返しますか?何がかかりますか?あなたの答えに応じて、改善があるかもしれません。 – Yakk