Hierarchy of namespaces, headers and objects
据我所知,命名空间std包含所有C ++标准库,其中一个标准库是iostream,它有cout和cin对象。
1 2 3 4 5 | std namespace | iostream | cout, cin |
以上结构是否正确? 或者它有什么不同?
当您假设标准库中的所有内容都包含在
All library entities except macros, operator new and operator delete are defined within the namespace std or namespaces nested within namespace std. It is unspecified whether names declared in a specific namespace are declared directly in that namespace or in an inline namespace inside that namespace.
然后,当你说"图书馆"时,这里只有一个图书馆,即"标准图书馆"。
例如,
From what I understand, the namespace std contains all of C++ standard
libraries, and one of the standard libraries is the iostream and it
has the functions cout and cin.
不完全的。
-
虽然几乎所有的标准库都在命名空间
std 中,但是当使用旧的头形式( 而不是 )和assert 宏时,我们还有std 之外的C组件,没有范围。 -
std::cin 和std::cout 不是函数而是对象。 -
只是标题的名称,其中包含C ++ ISO标准正式命名为"输入/输出库"的部分内容(std::iostream 是std::basic_iostream 类很少使用的typedef )。 -
库的某些组件可以通过不同的
#include 引入。例如,std::initializer_list 可通过 或通过包含类似 获得。
没有太多细节,头文件和作用域是C ++中的两个正交概念。换句话说,它们彼此平行存在。它们之间/之间没有有用的层次结构。