重複の可能性:
if ステートメントの変数のスコープ
次のコードがあるとします。
int y = 5;
if (.... ) {
int x = 10;
x = y;
}
if スコープの外で変数 x を使用する方法はありますか?
重複の可能性:
if ステートメントの変数のスコープ
次のコードがあるとします。
int y = 5;
if (.... ) {
int x = 10;
x = y;
}
if スコープの外で変数 x を使用する方法はありますか?
いいえ。 の範囲は の範囲x
内if
です。x
他の場所で使用する場合は、外部で宣言if
します。x
その次の行で参照しようとするif
と、コンパイル エラーが発生します。
ブロックのx
外に置くことは別として、いいえ。if
変数はそのスコープ内でのみ使用できます。
これは、C++ 標準が でそれについて述べなければならないことですbasic.scope.declarative
:
すべての名前は、宣言領域と呼ばれるプログラム テキストの一部で導入されます。宣言領域は、その名前が有効なプログラムの最大の部分です。つまり、その名前は、同じエンティティを参照する非修飾名として使用できます。 . 一般に、それぞれの特定の名前は、スコープと呼ばれるプログラム テキストの不連続な部分内でのみ有効です。
結果として、それを他の場所で使用することは無効です。