0

Objective-Cと自動参照カウントについての私の知識は非常に明確です。そして最近、私はC++、Smart Pointerを学んでいます。私は、スマートポインタと自動参照カウントがかなり似ていることがわかりました。スマートポインタと自動参照カウント

スマートポインタとC++とObjective-Cを使ったコードサンプル/例による自動参照カウントとの比較(類似点と非類似点)が見つかりませんでした。誰も私にこれについての詳細な説明を教えていただけますか?

EDIT:ここでは、スマートポインタによって、私はstd::shared_ptrstd::weak_ptrおよびstd::unique_ptrのみを示しています。

+1

1つは言語機能であり、もう1つは言語の上に構築されたライブラリユーティリティです。 – StoryTeller

+0

C++には、参照カウントがまったくない多くのスマートポインタがあります。 –

+0

@ SACHINGOYAL:Smart Pointerでは、shared_ptr、weak_ptr、およびunique_ptrのみを表示しています。 –

答えて

1

スマートポインタは、参照カウントに関して必ずしも実装する必要はありません。

unique_ptrは参照カウントを使用しません。unique_ptrが有効範囲外になると、pointeeは破棄されます。したがって、unique_ptrは、生ポインタと同じくらい効率的であると考えられます。排他的所有権を使用できる場合は、行のポインタベースの実装に匹敵する自動メモリ管理とパフォーマンスの両方があります。

shared_ptrは、通常、共有所有権をモデル化しているため、何らかの形式の参照カウントを使用して実装されます。所有者がなくなると、リソースは破棄されます。

関連する問題