★ この記事では、ポインタについて説明することを目標としています。
随時更新します
随時更新します
◎ ポインタ
◎ スマートポインタ
☆スマートポインタとは、便利なポインタのことです。
メモリの動的確保に起こりうる危険性(メモリの解放忘れ等)を減らす目的で使用します。
auto_ptr<T>というスマートポインタがありましたが、様々な問題が指摘され、非推奨となっています。
以下の3種のスマートポインタが追加されました。
- unique_ptr<T>
- shared_ptr<T>
- weak_ptr<T>
○ unique_ptr<T>
所有権を、1つのみ所有するスマートポインタです。名前から容易に想像できると思います
- 1つの所有権を持つ
- 所有権を移動するときはmove semantics
○ shared_ptr<T>
同じメモリの所有権を複数で共有できるスマートポインタです。名前から容易に想像できると思います(2度目)。
- 所有権を共有可能(コピー)
- 所有権を移動するときはmove semantics
○ weak_ptr<T>
メモリの所有権は持たずに、shared_ptr<T>が指すメモリを参照することができるスマートポインタです。