命名空间可以用于隔离相同名字的函数的可见性:
#include <iostream>
using namespace std;
namespace A{
void f()
{
cout<<"namespace A, fun: f"<<endl;
}
};
namespace B{
void f()
{
cout<<"namespace B, fun: f"<<endl;
}
};
int main ()
{
A::f(); //明确指出调用命名空间A内的函数f
B::f(); //明确指出调用命名空间B内的函数f
return 0;
}
通常而言,命名空间可以严格的隔离不同空间内名字的可见性:
#include <iostream>
using namespace std;
namespace A{
void f()
{
cout<<"namespace A, fun: f"<<endl;
}
void m()
{
cout<<"namespace A, fun: m"<<endl;
}
};
namespace B{
void f()
{
cout<<"namespace B, fun: f"<<endl;
m(); //命名空间B内