ホームページ  >  記事  >  バックエンド開発  >  C++ における static キーワードの役割は何ですか?

C++ における static キーワードの役割は何ですか?

烟雨青岚
烟雨青岚オリジナル
2020-07-16 15:14:457903ブラウズ

関数は次のとおりです: 1. 関数のローカル変数を変更します。 2. グローバル関数とグローバル変数を変更します。 3. クラス内のメンバー変数を変更します。 4. クラスのメンバー関数を変更します。

C++ における static キーワードの役割は何ですか?

静的関数:

1. 関数を変更するローカル変数:

機能: デフォルト値は 0、実行は 1 回のみ、メモリは操作の開始時に開かれ、メモリはグローバルに配置されます

2. グローバル関数の変更およびグローバル変数:

機能: 元のソース ファイルでのみ使用可能

3. クラス内のメンバー変数を変更:

特徴: 1と同様に、複数の静的yを定義しますが、yは1つだけであり、クラスのサイズ計算には入らず、クラスオブジェクトの存在に依存しません(直接呼び出すことができ、外部宣言も可能)は必須です)

4. クラスのメンバー関数を変更します:

特徴: f(): 括弧内に this ポインターはありません。呼び出しのみ可能です。このクラスの静的関数とその静的変数 (これらは静的に変更され、クラス オブジェクトの存在に依存しません) 存在します (外部宣言なしで直接呼び出すことができます)

C++ における static キーワードの役割は何ですか?

拡張情報:

static の主な使用法:

1. 静的メソッド

一般的には静的メソッドと呼ばれます。静的メソッド。静的メソッドはオブジェクトに依存せずにアクセスできるため、静的メソッドには this はありません。オブジェクトにアタッチされていないためです。オブジェクトが存在しないため、このようなものはありません。また、この機能により、クラスの非静的メンバー変数および非静的メンバー メソッドに静的メソッドでアクセスすることはできません。これは、非静的メンバー メソッド/変数は呼び出す前に特定のオブジェクトに依存する必要があるためです。

ただし、非静的メンバー メソッドと非静的メンバー変数には静的メソッドではアクセスできませんが、静的メンバー メソッド/変数には非静的メンバー メソッドでアクセスできることに注意してください。

2. 静的変数

静的変数は静的変数とも呼ばれます。静的変数と非静的変数の違いは次のとおりです: 静的変数はすべてのオブジェクトによって共有され、オブジェクト内にコピーが 1 つだけ存在します。メモリは、クラスが最初にロードされたときにのみ初期化されます。

非静的変数はオブジェクトによって所有され、オブジェクトの作成時に初期化されます。複数のコピーがあり、各オブジェクトが所有するコピーは相互に影響しません。静的メンバ変数の初期化順序は、定義された順序で初期化されます。

3. 静的コード ブロック

静的キーワードは、プログラムのパフォーマンスを最適化するために静的コード ブロックを形成する際にも重要な役割を果たします。静的ブロックはクラス内のどこにでも配置でき、クラス内に複数の静的ブロックが存在する可能性があります。

クラスが初めてロードされるとき、各静的ブロックは静的ブロックの順序で 1 回だけ実行されます。静的ブロックを使用してプログラムのパフォーマンスを最適化できる理由は、クラスのロード時に 1 回だけ実行されるというその特性のためです。

推奨チュートリアル: 「C 言語チュートリアル

以上がC++ における static キーワードの役割は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。