traditional namespace + new namespace
为什么使用c++的namespace
c/c++的编译模式都是把每一个.c/.cpp文件当作一个单独的编译单元,最后使用链接器进行链接成一个可执行文件。这意味这每一个cpp文件是没有办法看到其他cpp文件的内容。所以当两个cpp文件中定义相同名字的变量或者相同签名的函数的时候,只有到链接阶段才会报错甚至产生奇怪的bug。采用namespace可以有效减少变量名冲突的问题。
示例1
2
3namespace ns1 {
int num = 1;
}
1 | namespace ns1 { |
1 | namespace ns2 { |
1 | namespace ns2 { |
1 | #include "ns1.hpp" |