доступ к переменным из намеченного блока вложенных блоков [дубликат]

На этот вопрос уже есть ответ здесь:

Есть ли способ получить доступ к локальной переменной во внешней области в 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;
}

Ответы на вопрос(2)

Ваш ответ на вопрос