#include <fstream> ,相当于是引用标准C++的头文件,ifstream是标准C++的STL中的类,STL中的类都是定义在std这个名字空间中。
所以std::ifstream sitelist( "sitelist ",ios::nocreate);
就是使用std这个名字空间中定义的ifstream这个类,而且这样使用这个类就没有出现在全局名字空间中。

#include <fstream.h> ,相当于使用了VC实现的C++提供的头文件,此时ifstream虽有相同的功能,可是他现在相当于是全局名字空间中定义的了。相当于:
::ifstream sitelist( "sitelist ",ios::nocreate);
结果结果和别的东东形成全局名字空间污染问题。(也就是重名了)

C++Primer的第八章写得很清楚。

相关文章:

  • 2022-12-23
  • 2021-06-07
  • 2022-12-23
  • 2021-06-25
  • 2022-12-23
  • 2021-10-13
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-01-05
  • 2022-02-26
  • 2022-12-23
相关资源
相似解决方案