C ++:静的クラス

静的な自己理解

そのようなアプリケーションファイルの全体の生活のライフサイクルのための静的データメンバーまたは機能が配置されていることを、Cに、それはまた他の外部ファイル部材と共に使用されることを防止することができます

静的クラス

すべてのクラスのオブジェクトによって共有されているクラスの静的データメンバが、それはむしろクラスのオブジェクトよりも、クラスに属する:クリア

静的メンバーは以下のとおりです。静的クラス宣言文の内部でのみ発生します

内部および外部のクラスの静的メンバ関数を定義することができる(唯一の関数宣言の前にスタティックを追加する必要があります)

class a1{
....
static void func1();
};
void  a1::func1(){...}

静的データメンバーは初期化するために、クラスのコンストラクタではありませんを意味し、任意のオブジェクトクラスに属していないので、クラスの外でなければなりません
し、一度だけ定義することができ、それぞれが静的データメンバを定義する初期化

そして、好ましくは他の非インライン関数内でファイルに定義されています

クラス初期化メソッド:

私たちは、静的なconstメンバ整数の初期値内のクラスの種類を提供しますが、静的メンバは、constexprののリテラル型でなければならない必要とすることができます

eg: static constexpr int period = 30;

静的メンバは、特定のシナリオで使用することができます。

静的データメンバは、不完全なタイプかもしれ:
EG:

class Bar{
    public:...
    private:
    static Bar mem1;  //OK
    Bar *mem2; //OK
    Bar mem3; //ERROR
};

私たちは、デフォルトの引数として静的メンバを使用することができます
。例:

class Screen{
public:
Screen & clear(char = bkground)
private:
  static const char bkground;
};

おすすめ

転載: www.cnblogs.com/Liberavi/p/11568543.html