関数定義の静的変数でメンバー(不安、オブジェクト間で共有されます)

免責事項:この記事はブロガーオリジナル記事です、BY-SAの著作権契約、複製、元のソースのリンクと、この文を添付してくださいCC 4.0に従ってください。
このリンクします。https://blog.csdn.net/u012317833/article/details/41011997
関数内の静的メンバ変数の定義

ローカル変数はの静的メンバ関数とすることができます。関数内のローカル変数のメンバーは静的変数として定義されている場合は、そのクラスのすべてのオブジェクトは、この変数を共有するために、このメンバ関数を呼び出すとき。


クラスC
{
パブリック:
ボイドM();
プライベート:
int型のX;
}。

空隙C :: M()
{
静的int型、S = 0。
coutの<< ++の<<てendl;
}

int型のmain()
{
CのC1、C2。
c1.m(); // 1
c2.m()。// 2
c1.m()。// 3
リターン0;
}

Sブロック、範囲を有するブロック内に定義されたので、この例では、変数s Mの静的メンバ関数を定義し、それは内部でのみMをアクセスすることができます。Mは、1コールに1回、時間はそれに応じて増加しますね。mはC関数のメンバーであるので、すべてのオブジェクトは、Cは、この静的ローカル変数を共有しているからです。このように、mは各コールのアクセスが同じ秒です。対照的に、非静的ローカル変数xについて、各オブジェクトは、C xを有します。したがって、メインc1.mの最初の呼び出し()は、0〜1秒であろう(c2.mを呼び出す)(1〜2秒から2番目の呼c2.mを増加するであろう)S 2から増加3へ。
----------------
免責事項:この記事を再現元の記事、BY-SAの著作権契約CC 4.0に従って、「ないよりも、ないよりも、」CSDNブロガーである、元のソースのリンクを添付してくださいそしてこの文。
オリジナルリンクします。https://blog.csdn.net/u012317833/article/details/41011997

おすすめ

転載: www.cnblogs.com/findumars/p/11599032.html
おすすめ