スマート ポインター選択アルゴリズム
適切なスマート ポインター タイプを選択するときは、次の基準を考慮してください。
個性的所有権:
-
Use std::unique_ptr: 指定されたデリーターに排他的所有権を提供します。 STL コンテナで使用できます。
共有所有権:
- std::shared_ptr および std::weak_ptr: 複数の所有者がリソースを共有できるようにします。弱いポインタは、リソースの有効期間に影響を与えることなくリソースを監視します。
所有権なし:
- 生のポインタまたは参照を使用: 非-リソースが参照元のオブジェクトよりも存続する場合の参照の所有。 null 可能性またはリセット可能性には生のポインタを使用します。
追加の考慮事項:
- Boost::intrusive_ptr: リソースの軽量オプション既存の参照カウント付き管理。
- Boost::scoped_array および std::unique_ptr: スコープ付きポインターの配列バージョン。
- 非推奨: std::auto_ptr は C では非推奨になりました11.
推奨事項:
ほとんどの場合、一意の所有権のデフォルトの選択は std::unique_ptr です。 std::shared_ptr および std::weak_ptr は、共有所有権のシナリオに適しています。生のポインタと参照は、非所有関係に使用できます。
以上がC ではどのスマート ポインターを使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。