我看别人源代码,生命头文件有的直接.h就行了,有的用using namespace ,请问两者有什么区别,是不是只是习惯问题,谢谢

解决方案 »

  1.   

    namespace在后来出现的
    是为了避免头文件有一样名字的情况。
    引入空间,可以更好地进行管理。避免了名字一样的情况。
      

  2.   

    namespace是C++98标准引入的,你见到的所有可以使用不带.h并使用using的文件都是不再提倡使用原来的.h文件的。
      

  3.   

    http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=169251
      

  4.   

    using namespace用来确定编译时缺省查找的名字空间。
    例如,使用了STL的头文件,后面可以添加using namespace std;。这样就可以直接写类型名字了。如cout << endl;
    否则每次用到STL类型的时候都要添加std::。如std::cout << std::endl;
    如果编译器发现某个名字在多个缺省的名字空间都出现过,会显示编译错误,这时就必须使用::操作符强行指定名字空间了。
    例如你自己定义了一个变量,名字也叫cout。这时你就必须指定是std::cout还是::cout(直接使用::表示根名字空间)。
      

  5.   

    通过namespace可以避免使用不同的人的文件时产生名字冲突的问题,域的概念