在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1 #include <iostream> 2 using namespace std; 3 4 namespace A{ 5 int a = 1; 6 } 7 8 namespace B{ 9 int b = 2; 10 } 11 12 namespace C{ 13 int c = 3; 14 } 15 16 int main(){ 17 18 int a = 10; 19 int b = 20; 20 int c = 30; 21 22 using namespace A; 23 using namespace B; 24 using namespace C; 25 26 cout<<"a = "<<a<<endl; 27 cout<<"b = "<<b<<endl; 28 cout<<"c = "<<c<<endl; 29 30 cout<<"a::a = "<<A::a<<endl; 31 cout<<"b::b = "<<B::b<<endl; 32 cout<<"c::c = "<<C::c<<endl; 33 34 system("pause"); 35 return 0; 36 } 以上代码,会输出什么呢?答案如下: 1 a = 10 2 b = 20 3 c = 30 4 a::a = 1 5 b::b = 2 6 c::c = 3 7 请按任意键继续. . . 可见,函数内定义的变量声明会覆盖命名空间里的变量声明。所以,这里需要编程者注意,如果你在名字空间里做了一些赋值操作,那么在调用它的地方,一定要注意会不会被覆盖。 注:最好的调用方法是名字空间::变量名。 1 namespace A{ 2 int a = 1; 3 } 4 5 namespace B{ 6 int b = 2; 7 } 8 9 namespace C{ 10 int c = 3; 11 int b = 3; 12 } 13 14 int main(){ 15 16 //int a = 10; 17 //int b = 20; 18 //int c = 30; 19 20 using namespace A; 21 using namespace B; 22 using namespace C; 23 24 cout<<"a = "<<a<<endl; 25 cout<<"b = "<<b<<endl; 26 cout<<"c = "<<c<<endl; 上面的代码是通不过编译的,因为变量b的调用不明确,这就是所谓的“名字冲突”。 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论