命名空间合并
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<iostream>
using namspace std
还有为什么多个不同的头文件,都使用同一个标准命名空间std。
现在想想,每个标准头文件都处在命名空间std里。
比如iostream里的代码应该是如下的
namespace std{
cout的定义
cin的定义
等等
}
这样,用using namespace std
就可以直接使用cin,cout等函数了。标准库文件都处在命名空间std下面,std由多个不同的标准头文件组成。