#include <iostream>
using namespace std;
int main() {
int a = 20; // want to access this variable
{
int a = 30;
cout << a << endl;
}
return 0;
}
如果有同名的块级变量
,我想访问块内的局部变量不能访问内部作用域中由同名隐藏的块作用域名称。如果您希望从外部块作用域访问a
,那么您必须删除内部作用域中a
的声明。
int a = 20;
int& ref = a;
{
int a = 30;
std::cout << ref << 'n';
}
但是,我不推荐这种解决方案。相反,我建议为每个变量指定一个唯一的名称:
int meaningful_name = 20;
{
int clearly_a_different_variable = 30;
std::cout << meaningful_name << 'n';
}