2 singshell singshell 于 2016.04.28 17:06 提问

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;
对于命名空间是否会产生二义性?这样做的好处是什么?
(字体显示有问题,莫怪)

5个回答

oyljerry
oyljerry   Ds   Rxr 2016.04.28 21:59
已采纳

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

CSDNXIAOD
CSDNXIAOD   2016.04.28 17:12

[初级]避免多个头文件重复定义的问题
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

passer_by_hq
passer_by_hq   2016.04.28 23:49

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

singshell
singshell “累赘”我不同意,问题中的示例是一个大型软件的源码的结构,如果都合并在一起写的话,整体结构会很混乱。
一年多之前 回复
ZGZ1002
ZGZ1002   2016.04.29 18:00

你可以合并到一个里面

CSDN861736862
CSDN861736862   2017.10.23 21:03

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!