一つ。プロセス指向の静的
(1)静的変数
静的変数は1回だけ初期化され、初期化されていない静的変数はデフォルトで0に初期化されます。
静的グローバル変数:
静的グローバル変数はこのファイルでのみ表示され、外部ファイルにはアクセスできません
静的ローカル変数:
静的ローカル変数は定義されたスコープでのみ表示されますが、それらのライフサイクルはプログラム全体のランタイムです。
(2)静的関数
静的関数は、主に関数を非表示にするために使用されます。静的変更関数は、現在のファイルでのみ使用できます。関数のアドレスは他のファイルでは見つからないため、インクルードは役に立ちません。
2。オブジェクト指向設計における静的
クラス名を使用できます::パブリック静的データメンバーと静的メンバー関数を直接呼び出す
(1)静的データメンバー
このクラスのインスタンスがいくつあっても、この静的データメンバーが唯一のものです。
静的に変更されたデータメンバーは、スタックにメモリを割り当てませんが、.dataセクションにメモリを割り当てます。
静的に変更されたデータメンバーはコンストラクターを呼び出して初期化できないため、静的に変更されたデータメンバーはクラスの外部で定義する必要があり、定義時に初期化できない場合があります。cppで定義され、ヘッダーファイルで宣言されます。ヘッダファイルで定義されている場合、複数のファイルにこのヘッダファイルが含まれていると、定義が繰り返されます。
(2)静的メンバー関数
利点は、この関数を呼び出すためにオブジェクトを必要とせず、クラス名を使用することです。
静的メンバー関数は、クラス内またはクラス外で定義できますが、クラス内で宣言する必要があります。
静的メンバー関数にはこのポインターがないため、非静的データメンバーを直接参照したり、クラスの非静的メンバー関数を呼び出したりすることはできません。クラスの静的メンバーデータと静的メンバー関数のみを呼び出すことができます。
静的メンバーはオブジェクトで構成されておらず、オブジェクトの呼び出しに依存しないため、constはこのクラスのオブジェクトのみを定義するため、静的メンバーメソッドをconstとして宣言することはできません。
静的メンバーメソッドを同時に仮想関数として宣言することはできません。