В следующей программе, как получить значение aa из блока A в блоке C? Мы можем получить доступ только к внешнему глобальному aa, используя оператор разрешения области.Доступ к переменным из предполагаемого блока вложенных блоков
Известных solutoins: 1. Используйте различные указатели в разных блоках 2. Используйте переменные в родительском блоке перед использованием текущего блока, используя переменную
Ищу для любого другого альтернативного решения
Я знаю, что это не хороший код. Просто любопытно понять, как его достичь.
#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;
}