acessando variáveis de um bloco pretendido de blocos aninhados [duplicado]
Esta pergunta já tem uma resposta aqui:
Existe alguma maneira de acessar uma variável local no escopo externo em C ++? 4 respostasNo programa abaixo, como recuperar o valor de aa do Bloco A no Bloco C? Só podemos acessar o aa global mais externo usando o operador de resolução de escopo.
Solutoins conhecidos: 1. Use ponteiros diferentes em blocos diferentes 2. Use a variável no bloco pai antes de usar a variável do bloco atual
Estou à procura de qualquer outra solução alternativa
Eu sei que isso não é um bom código. Apenas curioso em entender como alcançá-lo.
#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;
}