c++ - 什么是::in 声明以及为什么使用它?

标签 c++ fstream

我来自 C 工作环境,刚接触 C++。 请帮助完成以下声明。

在一些函数 foo() 中,我找到了这段代码。

::ifstream ifObj;

我知道它正在声明输入文件流对象。

但是我完全不知道这里的::范围解析这个概念。 这是什么以及为什么在对象声明中使用它。

到处都找不到,所以才问。

最佳答案

专门针对您的问题,

就是让编译器在追溯类型ifstream的来源的同时解决消歧问题。

ifstream 可以在像 boost 这样的第三方库中声明以提供不同的含义,

考虑一下,

namespace boost {
 typedef int ifstream;
}

using namespace boost;

//but here you want global ifsteam, not from boost, so
::ifstream ifObj; // Here you are creating a object for global ifstream, not for boost's ifstream,

关于c++ - 什么是::in 声明以及为什么使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18741742/

相关文章:

c++ - 如何在 C++ 中的 ifstream 函数生成的文件中搜索特定单词

c++ - 将 CRC 数据写入 .txt 文件

c++ - 在 C++ 中有效地规范化数组

c++ - 在容器元素上应用函数需要更好的名称

c++ - 固定更新速度

c++ - 使用 fstream 从 txt 文件中获取行

c++ - 如何在 fstream 中使用引号?

c++ - 在 C++ 继承中,当指向基类的指针对象指向派生类时,不调用派生类析构函数

c++ - Armadillo 中是否有类似稀疏立方体的东西,或者使用稀疏矩阵作为立方体切片的某种方式?

c++ - 打开一个文件,修改每个字符然后做反向操作不输出原始文件