没有理解C++的namespace。如果熟悉java的话,可以这样理解,java中用包机制取代了所谓的命名空间。在java中一般是一个类一个文件的(原则上说多个类放一个文件下也没问题),然后相同功能的一组类文件组合成了一个包。
在C++中,namespace就相当于java中的包,单纯的头文件是不需要命名空间的,如果想把多个类、辅助函数等等组合成一个整体,就用namespace。
命名空间是防止名称碰撞的机制,比如有一个class A,也有一个class A,那么们在同一个程序下的话到底是用的A还是的A?在C++中就这样用I::A、Y::A,而java中则是I.A,Y.A
不需要.h的头文件,是C++的标准头文件,里面都包含了namespace std,如果是标准出现前的C++头文件,如