// Foo.cpp
int whatScopeAmI = 0;
Foo::Foo() {
// source code
}
変数にはどのようなスコープがありますwhatScopeAmI
か?
その変数は、任意のブロックから定義されているため、プログラム スコープを持つグローバル変数です。
ブロックの外で宣言された変数は、グローバル変数と呼ばれます。グローバル変数にはプログラム スコープがあります。つまり、グローバル変数はプログラムのどこからでもアクセスでき、プログラムの終了時にのみ破棄されます。
これはグローバルで、プログラムのどこでも利用できます。
別の翻訳単位にextern int whatScopeAmI;
宣言がある場合、同じ変数を参照します。
static int whatScopeAmI = 0;
変数が内部リンケージを持つように宣言されている場合、現在の翻訳単位でのみ使用できます。