2017-04-08 3 views
1

これはローカル変数とグローバル変数の使用方法を示すためのコードです。私はこれを少年の一人に説明しようとしていて、彼は私にこの質問をしました。変数の中間スコープの値を取得

以下のコードでは、外側のループから 'x'の値を得るにはどうしたらよいですか?この場合、2の値を持つ 'x'にアクセスする方法。

#include<iostream> 
using namespace std; 
int x = 1; 
void fun() { 
    int x = 2; 
    { 
    int x = 3; 
    cout << x << endl; // This will give 3 
    cout << ::x << endl; // This will give 1 
    // What should I write here to get x = 2. 
    } 
} 
int main() { 
    fun(); 
} 
+2

できません。変数の名前を変更します。 – melpomene

+1

なぜ人生は難しくコードは読めないのですか?同じ名前の変数を複数持つと、エラーが発生しやすくなります –

答えて

6

できません。最初のxの名前は、2番目のxによって隠されています。最初のxは、名前空間(グローバル名前空間を含む)、クラスまたは列挙型に属していないため、名前を修飾することができないため、アクセスできません。

関連する問題