C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++の静的キーワード


staticキーワードを使用すると、変数またはデータのメンバーまたは関数を再度変更することはできません。プログラムの存続期間中に割り当てられます。静的関数は、クラス名を使用して直接呼び出すことができます。

静的変数は一度だけ初期化されます。コンパイラは、プログラムが終了するまで変数を保持します。静的変数は、関数の内部または外部で定義できます。それらはブロックに対してローカルです。静的変数のデフォルト値はゼロです。静的変数は、プログラムが実行されるまで存続します。

これがC++言語のstaticキーワードの構文です

static datatype variable_name = value;      // Static variable
static return_type function_name {             // Static functions
   ...
}

ここで

データ型 − int、char、floatなどの変数のデータ型

variable_name −これはユーザーが指定した変数の名前です。

−変数を初期化するための任意の値。デフォルトではゼロです。

return_type −値を返す関数のデータ型。

function_name −関数の任意の名前。

これはC++言語の静的変数の例です

#include <bits/stdc++.h>
using namespace std;
class Base {
   public : static int val;
   static int func(int a) {
      cout << "\nStatic member function called";
      cout << "\nThe value of a : " << a;
   }
};
int Base::val=28;
int main() {
   Base b;
   Base::func(8);
   cout << "\nThe static variable value : " << b.val;
   return 0;
}

出力

Static member function called
The value of a : 8
The static variable value : 28

上記のプログラムでは、静的変数が宣言され、静的関数が以下に示すようにクラスBaseで定義されています-

public : static int val;
static int func(int a) {
   cout << "\nStatic member function called";
   cout << "\nThe value of a : " << a;
}

クラスの後、main()の前に、静的変数は次のように初期化されます-

int Base::val=28;

main()関数では、Baseクラスのオブジェクトが作成され、静的変数が呼び出されます。静的関数も、Baseクラスのオブジェクトを使用せずに次のように呼び出されます-

Base b;
Base::func(8);
cout << "\nThe static variable value : " << b.val;

  1. C#のvolatileキーワード

    C#での同時実行の問題を減らすには、volatileキーワードを使用します。例を見てみましょう。 以下は、パブリック変数にvolatileキーワードを使用する方法です- class Program {    public volatile int a;    public void Program(int _a) {       i = _i;    } } 別の例を見てみましょう。2つの静的変数があります。新しい方法でそれらを設定します- _out = "Welcome!"; _

  2. C#の静的キーワード

    staticキーワードを使用して、クラスメンバーを静的として定義できます。クラスのメンバーを静的として宣言すると、クラスのオブジェクトがいくつ作成されても、静的メンバーのコピーは1つだけになります。 キーワードstaticは、クラスにメンバーのインスタンスが1つだけ存在することを意味します。静的変数は、インスタンスを作成せずにクラスを呼び出すことで値を取得できるため、定数の定義に使用されます。 以下は、静的変数の使用法を示す例です- 例 using System; namespace StaticVarApplication {    class StaticVar