10.第10章ポインタ

各バイトは、アドレス変数を持つ1.メモリアドレスは、最初のバイトのアドレスです。(このようなINT 4バイトのタイプとして、変数として全体のアドレスの最初のバイトのアドレスになります)

2.配列名は一定のポインタです。

3. nullptrは、無効なメモリアドレスを示します。

関数へのポインタを渡し、同様の効果が挙げられる転送4。しかし、参照ポインタよりも扱いやすい、それはすべての間接参照と間接参照メカニズムを隠しているため。列Cを取り扱う場合、ポインタを使用することが好ましいです。

パラメータとしてCONSTへのポインタは、両方とも、非定数引数のアドレスを受信することができ、アドレス定数引数を受け取ります。(CONSTへのポインタがポイント定数データポインタとして解釈することができ、データポインタは変更されず、ポインタそのものでのconstポインタ手段ながらポインタ自体を変更することができる初期化された後、ポインタ値自体は変更されず、一定であります)

前記動的メモリ割り当ては、ポインタのみによって達成することができ、それは(それがよりダイナミックアレイを作成して、新しいオペレータによって行わ)プログラムは、必要な一時変数を作成することを可能にし得ます。

7.新しいは、使用後に、あなたはそれ以外の場合はメモリリークがあるだろう、空きメモリを削除使用する必要があり、ヒープからメモリを割り当てます。ポインタに削除呼び出した後、ポインタがすぐに有効なメモリへのポインタは、もはやそのポイントを示し、nullptrに割り当てられている必要があります。

8.回避ダングリングポインタ方法:(1)メモリの解放後は、ポインタの値が直ちにnullptrに設定されています。(2)ポインタの値にアクセスする前に、最初のポインタがNULLであるかどうかを決定します。 

9.機能は、ローカル変数へのポインタを返すべきではない動的に割り当てられたメモリ領域のポインタへのポインタを返します。

10.それは、動的にそのコンストラクタとデストラクタの呼び出し削除機能で呼び出し、新しいクラスを割り当てる必要があります。

スマートポインタの11.導入はダングリングポインタ、メモリリーク、ダブル、削除その他の問題を解決します。スマートポインタは、3種類のweak_ptr、unique_ptrを、shared_ptrのを持っています。核となるアイデアは、所有権スマートポインタ動的に割り当てられたメモリの問題です。

排他的に指し12 unique_ptrを<整数> INT意味ポインタ。ポインタを表す独占ポインタオブジェクトは1対1の関係であることが他のオブジェクトにスコープのか、ポイントに出て行くとき、それは自動的に、彼らが管理するオブジェクトを解放します。、別の排他的排他的なポインタへのポインタからオブジェクトの所有権の移転を移動()関数を使用して。パラメータ、転送所有権(パラメータに渡された値によって、引数に必要な移動()関数を渡すときにこのため、ポインタは2つのオブジェクトを引き起こすために、これは原則排他的に違反すると、参照によって渡されることはありません意志)

14 C ++で13は、()make_unique <T>使用したのと同じトークンにオブジェクトを返すことができる、make_shared <T>()を使用することができます。

14.動的に割り当てられた共有ポインタは、一般的に、オブジェクトを所有してスマートポインタの複数を管理するために使用されてもよいです。共有ポインタを使用する場合、2つのポインタがオブジェクトを管理状況の同じセットを避ける必要があります。

15.はmake_shared <T>はだけでなく、効率的であるが、また、デュアル経営の発生を回避します。

 

おすすめ

転載: www.cnblogs.com/Hello-Nolan/p/12232756.html