为什么包含文件类的头文件还不行,还要加using namespace std;

时间:2022-01-05 10:03:07
今天写代码的时候要用到文件操作,发现明明include <fstream>了,而且第一行是#include <stdfax.h>,但是却显示代码中的“ifstream”是未声明的标识符 。后来加了using namespace std; 然后就神奇的好了,这是为啥?

3 个解决方案

#1


ifstream 是在名字空间std中的,不加using namespace std那你就要这么用:


std::ifstream in_stream;

#2


VS.NET中的各种语言使用的一种代码组织的形式
  通过名称空间来分类,区别不同的代码功能
  同时也是VS.NET中所有类的完全名称的一部分
  名称空间是.NET中提供应用程序代码容器的方式,这样可以惟一标识代码及其内容。名称空间也可以用做.NET Framework 中给项分类的一种方式,而大多数项都是类型定义的。默认情况下,代码包含在全局名称空间中。这意味着对于包含在这段代码中的项,只要按照名称进行引用,就可以由全局名称空间中的其他代码访问它。

#3


引用 1 楼 hurryboylqs 的回复:
ifstream 是在名字空间std中的,不加using namespace std那你就要这么用:


std::ifstream in_stream;


在类里面或者函数内部,

using st::ifstrem;

ifstream in_fream;

#1


ifstream 是在名字空间std中的,不加using namespace std那你就要这么用:


std::ifstream in_stream;

#2


VS.NET中的各种语言使用的一种代码组织的形式
  通过名称空间来分类,区别不同的代码功能
  同时也是VS.NET中所有类的完全名称的一部分
  名称空间是.NET中提供应用程序代码容器的方式,这样可以惟一标识代码及其内容。名称空间也可以用做.NET Framework 中给项分类的一种方式,而大多数项都是类型定义的。默认情况下,代码包含在全局名称空间中。这意味着对于包含在这段代码中的项,只要按照名称进行引用,就可以由全局名称空间中的其他代码访问它。

#3


引用 1 楼 hurryboylqs 的回复:
ifstream 是在名字空间std中的,不加using namespace std那你就要这么用:


std::ifstream in_stream;


在类里面或者函数内部,

using st::ifstrem;

ifstream in_fream;