ポインターは、オブジェクトのメモリ アドレスを格納する変数です。 ポインターは、主に次の 3 つの目的で C と C++ の両方で広く使用されます。
- ヒープ上に新しいオブジェクトを割り当てる。
- 関数を他の関数に渡す。
- 配列またはその他のデータ構造内の要素を反復処理する。
C スタイルのプログラミングでは、これらのすべてのシナリオで生ポインター が使用されます。 しかし、生ポインターは、多くの重大なプログラミング エラーの原因になりす。 そのため、パフォーマンスに大きなベネフィットがあり、どのポインターがオブジェクトの削除を担当する所有ポインターであるかあいまいでない場合を除き、生ポインターの使用は推奨されません。 最新の C++ では、オブジェクトの割り当てにはスマート ポインター、データ構造の走査には反復子、関数を渡すにはラムダ式が使用されます。 生ポインターの代わりにこれらの言語およびライブラリ機能を使用すると、プログラムの安全性が向上し、デバッグしやすくなり、解釈と保守が簡単になります。 詳細については、「スマート ポインター」、「反復子」、「ラムダ式」を参照してください。
このセクションの内容
- 生ポインター
- const ポインターと volatile ポインター
- new 演算子と delete 演算子
- スマート ポインター
- 方法: unique_ptr インスタンスを作成して使用する
- 方法: shared_ptr インスタンスを作成して使用する
- 方法: weak_ptr インスタンスを作成して使用する
- 方法: CComPtr インスタンスと CComQIPtr インスタンスを作成して使用する