多くの変数を使用する長いコードがあると想像してください。代わりに、関数が属するクラスからこれらの変数を呼び出したいですか? 述べる:
a
またb
クラスでの意味
this->a
this->b
グローバル変数を表示したい場合は、次のように使用する必要があります
::a
または ::b
この関数内で、次を介して:
static int f() { return ::c; }
標準ドキュメントから、Sec 3.3.1
すべての名前は、宣言領域と呼ばれるプログラム テキストの一部で導入されます。宣言領域は、その名前が有効なプログラムの最大の部分です。つまり、その名前は、同じエンティティを参照する非修飾名として使用できます。 . 一般に、それぞれの特定の名前は、スコープと呼ばれるプログラム テキストの不連続な部分内でのみ有効です。宣言のスコープを決定するために、宣言の潜在的なスコープを参照すると便利な場合があります。宣言のスコープは、潜在的なスコープに同じ名前の別の宣言が含まれていない限り、潜在的なスコープと同じです。その場合、宣言の潜在的なスコープ内側の (含まれる) 宣言領域は、外側の (含む) 宣言領域の宣言の範囲から除外されます。
これは、別の (内部) 宣言が発生しない限り、潜在的なスコープが宣言のスコープと同じであることを意味します。発生した場合、外側の宣言の潜在的なスコープが削除され、内側の宣言のみが保持されるため、グローバル変数は非表示になります。