c ++キーワードstaticの役割

一つ。プロセス指向の静的

(1)静的変数

        静的変数は1回だけ初期化され、初期化されていない静的変数はデフォルトで0に初期化されます。

静的グローバル変数:

        静的グローバル変数はこのファイルでのみ表示され、外部ファイルにはアクセスできません

静的ローカル変数:

       静的ローカル変数は定義されたスコープでのみ表示されますが、それらのライフサイクルはプログラム全体のランタイムです。

 

(2)静的関数

             静的関数は、主に関数を非表示にするために使用されます。静的変更関数は、現在のファイルでのみ使用できます。関数のアドレスは他のファイルでは見つからないため、インクルードは役に立ちません。

 

2。オブジェクト指向設計における静的

クラス名を使用できます::パブリック静的データメンバーと静的メンバー関数を直接呼び出す

(1)静的データメンバー

         このクラスのインスタンスがいくつあっても、この静的データメンバーが唯一のものです。

         静的に変更されたデータメンバーは、スタックにメモリを割り当てませんが、.dataセクションにメモリを割り当てます。

        静的に変更されたデータメンバーはコンストラクターを呼び出して初期化できないため、静的に変更されたデータメンバーはクラスの外部で定義する必要があり、定義時に初期化できない場合があります。cppで定義され、ヘッダーファイルで宣言されます。ヘッダファイルで定義されている場合、複数のファイルにこのヘッダファイルが含まれていると、定義が繰り返されます。

(2)静的メンバー関数

           利点は、この関数を呼び出すためにオブジェクトを必要とせず、クラス名を使用することです。

          静的メンバー関数は、クラス内またはクラス外で定義できますが、クラス内で宣言する必要があります。

         静的メンバー関数にはこのポインターがないため、非静的データメンバーを直接参照したり、クラスの非静的メンバー関数を呼び出したりすることはできません。クラスの静的メンバーデータと静的メンバー関数のみを呼び出すことができます。

         静的メンバーはオブジェクトで構成されておらず、オブジェクトの呼び出しに依存しないため、constはこのクラスのオブジェクトのみを定義するため、静的メンバーメソッドをconstとして宣言することはできません。

          静的メンバーメソッドを同時に仮想関数として宣言することはできません。

 

 

元の記事を59件公開 いいね46 30,000回以上訪問

おすすめ

転載: blog.csdn.net/sinat_41852207/article/details/104716058