C++ 访问嵌套块内重定义的变量
考虑以下程序:C++ 访问嵌套块内重定义的变量,c++,C++,考虑以下程序: #include <iostream> using std::cout; int i = 10; int main() { int i = 9; { int i = 8; { int i = 7; cout << i << "\n"; // i = 7 cout << ::
#include <iostream>
using std::cout;
int i = 10;
int main() {
int i = 9;
{
int i = 8;
{
int i = 7;
cout << i << "\n"; // i = 7
cout << ::i << "\n"; // i = 10 (global i)
// How could we access to other i declarations here?
}
}
return 0;
}
#包括
使用std::cout;
int i=10;
int main(){
int i=9;
{
int i=8;
{
int i=7;
不能声明一个新的变量名,类似于'j'而不是'i'
#include <iostream>
using std::cout;
int i = 10;
int main() {
int i = 9;
{
int j = 8;
{
int j = 7;
cout << j << "\n"; // j = 7
cout << ::i << "\n"; // i = 10 (global i)
// How could we access to other
i declarations here?
}
}
return 0;
}
#包括
使用std::cout;
int i=10;
int main(){
int i=9;
{
int j=8;
{
int j=7;
简言之,这是不可能的。所以不要这样做。如果需要访问外部作用域变量,没有办法使用不同的名称。为什么要编写这样的代码?请参阅@CodyGray,just curiousity:)