命名空间:
namespace叫命名空间,用于解决函数/变量重名的问题,如果一个函数/变量被声明在命名空间中,那么使用他们的时候需要加上作用域
namespace foo{
int x = 10;
}
cout<<foo::x<<endl;
除了加上作用域,还可以使用using关键字来默认指定命名空间
namespace foo{
int x = 10;
}
using namespace foo;
cout<<x<<endl;
同一个命名空间可以在多个文件中被书写,本质上还是归属于同一个命名空间。
注意:如果a.cpp和b.cpp都有foo这个命名空间,那么在a.cpp的foo中要使用b中的foo所定义的变量,还是要加foo作用域
匿名命名空间:
处于匿名命名空间中的变量函数,在本文件中,无需指明作用域就可以使用,如同全局变量/函数一样
但是由于不具有名字,所以在其他文件中无法使用该匿名命名空间中的变量/函数