C++名字空间

为什么要有名字空间(namespace)?可以想一个这样的问题,如果两个人写一个项目各写一部份,他们同时取了一个相同名字的函数(int add(int a,int b)),在主程序中调用了add函数,哪么编译器将会报错,不知道要link哪个写的add函数。这就是为什么要名字空间的原因,可以很好的解决重名问题,不会污染全局标识符。