以下のプログラムでは、ブロックCのブロックAからaaの値を取得する方法はありますか? スコープ解決演算子を使用して、最も外側のグローバルaaにのみアクセスできます。ネストされたブロックの対象ブロックから変数にアクセスする
既知solutoins:異なるブロック 2.親ブロック内の変数で 1.異なるポインタを現在のブロックの変数
私は、他の代替ソリューションを探していますを使用する前に、
私がいることを知っていますこれは良いコードではありません。それを達成する方法を理解するだけで興味があります。
#include <iostream>
#include <cstdio>
using namespace std;
// Global
int aa = 10;
int main()
{
// Main
int aa = 20;
{
// Block A
int aa = 30;
{
// Block B
int aa = 40;
{
// Block C
int aa = 50;
cout << "block C " << aa << endl;
cout << "block A " << ????? << endl;
cout << "global" << ::aa << endl;
}
cout << "block B " << aa << endl;
}
cout << "block A " << aa << endl;
}
cout << "main " << aa << endl;
return 0;
}