доступ к переменным из намеченного блока вложенных блоков [дубликат]
На этот вопрос уже есть ответ здесь:
Есть ли способ получить доступ к локальной переменной во внешней области в C ++? 4 ответаВ программе ниже, как получить значение аа из блока А в блоке С? Мы можем получить доступ только к самому внешнему глобальному объекту, используя оператор разрешения области видимости.
Известные решения: 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;
}