【发布时间】:2016-10-08 06:20:45
【问题描述】:
在下面的程序中,如何从 Block C 中的 Block A 中获取 aa 的值? 我们只能使用范围解析运算符访问最外层的全局 aa。
已知的解决方案: 1.在不同的block中使用不同的指针 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;
}
【问题讨论】: