C++可以在多个头文件中重复定义同一名称的命名空间吗?

test_a.h中有定义:
namespace ns {
class a {...};
}
test_b.h中有定义:
namespace ns {
class b {...};
}
test_c.h中有定义:
namespace ns {
class c {...};
}
然后,在test_c.cpp中有如下代码片段:
#include "test_a.h"
#include "test_b.h"
#include "test_c.h"
using namespace ns;
对于命名空间是否会产生二义性?这样做的好处是什么?
(字体显示有问题,莫怪)

这样就会合并多个命名空间 只要名称不相同冲突

其实你可以合并到一个里面,那样写很累赘!

你可以合并到一个里面

的确,复杂代码需要把多个类、辅助函数等合并到一个结构中实现一个模块的功能,比如逻辑服务器,包含许多的类和工具、辅助函数,都使用一个命名空间;

可以的,命名空间只要名字一样,把变量分开也是可以的,这种是迭代式编程思想。这次你在命名空间声明了一些变量,下次方便你在命名空间里面添加新的变量