当前位置: 首页 > 知识库问答 >
问题:

命名空间、标头和对象的层次结构

邓卓
2023-03-14

据我所知,命名空间std包含所有的C++标准库,其中一个标准库是iostream,它有对象cout和cin。

std namespace 
       |
   iostream
       |
   cout, cin

上面的结构正确吗?还是不同?

共有1个答案

宦瀚
2023-03-14

据我所知,命名空间std包含所有的C++标准库,其中一个标准库是iostream,它具有cout和cin函数。

不完全是。

  • 虽然几乎所有的标准库都在名称空间std中,但是当使用旧的头表单( 而不是 )时,我们也有std之外的C组件,以及assert宏,该宏没有作用域。
  • std::cinstd::cout不是函数,而是对象。
  • 只是头的名称,它包含C++ISO标准正式命名为“输入/输出库”的部分内容(std::iostreamstd::basic_iostream 类很少使用的typedef)。
  • 库的某些组件可以通过不同的#includes拉入。例如,std::initializer_list可以通过 或通过includes like
  • 获得。
 类似资料:
  • 零售商店的正确模式是什么?公司从商店销售产品。 这似乎违反了我对OOP所知的全部知识。通过层次结构向下传递数据的方法--在对象之间复制参数?我错过了什么?

  • 问题内容: 在“深度”对象层次结构中使用Builder模式的最佳实践是什么?详细地说,我探讨了将Joshua Bloch提出的Builder模式应用于我的XML绑定代码的想法(我使用的是SimpleXML,但是这个问题将适用于任何情况)。我的对象层次结构深达4个级别,具有不同程度的复杂性。我的意思是,在某些级别上,我的对象只有几个属性,而在其他级别上,我最多可以有10个属性。 因此,请考虑以下假设

  • 主要内容:使用C++的头文件C++ 是在C语言的基础上开发的,早期的 C++ 还不完善,不支持命名空间,没有自己的编译器,而是将 C++ 代码翻译成C代码,再通过C编译器完成编译。这个时候的 C++ 仍然在使用C语言的库,stdio.h、stdlib.h、string.h 等头文件依然有效;此外 C++ 也开发了一些新的库,增加了自己的头文件,例如: iostream.h:用于控制台输入输出头文件。 fstream.h:用于

  • 问题内容: 我在 .NET for WinRT(C#)中 ,我想将JSON字符串反序列化为,然后将字典值稍后转换为实际类型。JSON字符串可以包含对象层次结构,我也希望在其中包含子对象。 这是应该能够处理的示例JSON: 我尝试使用 DataContractJsonSerializer 这样做: 实际上,这对于第一个级别是可行的,但是 “父母” 只是一个不能强制转换为的对象: 然后,我尝试使用 J

  • 尝试使用camel cxf bean调用外部soap服务,但不确定如何在setHeader中传递多个名称空间。 OPERATION_NAMESPACE,常量("http://test.org/Imports") 对于其中一个操作,需要传递2个命名空间作为http://test.org/Importshttp://globe.org/schema 让我知道我们如何在调用cxf bean之前将骆驼头中

  • 关于术语的一点说明: 请务必注意一点,TypeScript 1.5里术语名已经发生了变化。 “内部模块”现在称做“命名空间”。 “外部模块”现在则简称为“模块”,这是为了与ECMAScript 2015里的术语保持一致,(也就是说 module X { 相当于现在推荐的写法 namespace X {)。 这篇文章将概括介绍在TypeScript里使用模块与命名空间来组织代码的方法。 我们也会谈及