C++项目相关知识命名空间2

命名空间合并

test_a.h中有定义:

namespace ns {
class a {...};
}

test_b.h中有定义:

namespace ns {
class b {...};
}

然后,在test_c.cpp中有如下代码片段:

#include "test_a.h"
#include "test_b.h"
using namespace ns;

则最后多个命名空间ns会合并成一个命名空间ns,包含类a和类b的定义。


标准库文件和using namespace std

以前一直搞不懂下述代码总是成群出现。

#include
using namspace std

还有为什么多个不同的头文件,都使用同一个标准命名空间std。
现在想想,每个标准头文件都处在命名空间std里。
比如iostream里的代码应该是如下的

namespace std{
cout的定义
cin的定义
等等
}

这样,用using namespace std就可以直接使用cin,cout等函数了。标准库文件都处在命名空间std下面,std由多个不同的标准头文件组成。

你可能感兴趣的:(C++项目相关知识命名空间2)