c++==名稱空間(5)
阿新 • • 發佈:2019-01-09
名稱空間
在c語言中
1、只有一個全域性作用域。
2、所有的全域性識別符號共享同一個作用域
3、識別符號之間可能發生衝突
在c++中
1、提出了名稱空間的概念
2、名稱空間將全域性作用域分成不同的部分
3、名稱空間可以相互巢狀
4、全域性作用域也叫預設名稱空間
名稱空間目的:防止命名衝突
如何定義:
namespace name
{
/*……*/
}
namespace First
{
int i = 0;
}
namespace Second
{
int i = 1;
namespace Internal
{
struct P
{
int x;
int y;
}
}
}
int main()
{
using namespace First;
using Second::Internal::P;
printf("i = %d\n", i);
printf("i = %d\n", Second::i);
P p = {2, 3};
printf("p.x = %d\n", p.x);
printf("p.y = %d\n", p.y);
return 0;
}
名稱空間的使用:
使用整個名稱空間:using namespace name;
使用名稱空間中的變數:using name::variable;
使用預設名稱空間中的變數: ::variable
預設情況下可以直接使用預設名稱空間中的所有識別符號