C ++访问上限范围而不是全局范围

时间:2016-10-01 21:20:45

标签: c++ scope

您可以在下面找到我的代码及其输出。我应该在" SOMETHING"中使用什么前缀(或其他东西)?访问中级j(j == 2)?

我试过

  

主::Ĵ

但它没有用。

守则:

#include <iostream>
int j=3;//global
using std::cout;using std::endl;
int main(){
int j=2;//mid
cout<<"inside general main:\n";
cout<<"cout<<j---"<<j<<endl;//prints 2
cout<<"cout<<::j---"<<::j<<endl;//prints 3
cout<<"inside for loop:\n";
for(int i=0;i<1;i++){
    int j=1;//inside
    cout<<"cout<<j---"<<j<<endl;//prints 1
    cout<<"cout<<::j---"<<::j<<endl;//prints 3
    //cout<<"cout<<::j---"<<SOMETHING<<endl;//prints 2
}
return 0;
}

输出:

inside general main:
cout<<j---2
cout<<::j---3
inside for loop:
cout<<j---1
cout<<::j---3

1 个答案:

答案 0 :(得分:2)

没有资格引用本地范围。

只需使用不同的名称。