namespace 其实是一个域,它的作用是解决C语言命名冲突的问题
例子:
int scanf = 10;
scanf("%d", &scanf)
它会优先输出 10 ,可是,scanf 不是函数吗?因为程序跑起来的时候遵循“就近原则”,所以会在遇到第一个 scanf 时,把 scanf 当成变量,所以上面两个都是变量。
“就近原则” -- 先从局部域开始,后到全局域。
//默认访问局部域或全局域
printf("%x, scanf) -> 打印的是scanf函数
//指定访问命名空间
printf("%x, cpp::scanf) -> 打印的是cpp命名空间里的scanf值
namespac 可以嵌套定义命名空间
namespcae a1{
namespace a2{
namespace a3{
...
}
}
}
同一个工程中多个相同名称的命名空间,最终会合成一个。
对部分常用展开:
using std::cout;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)