据我所知,名称空间std包含所有的C++标准库,其中一个标准库是iostream,它包含对象cout和cin。
std namespace
|
iostream
|
cout, cin上面的结构正确吗?或者它是不同的?
发布于 2017-03-23 01:20:05
当您假设标准库中的所有内容都包含在std名称空间中时,您是正确的,只有少数例外,根据标准中的17.6.1.1/§3:
除了宏、新运算符
和删除运算符之外,所有库实体都定义在命名空间std中或嵌套在命名空间std中的命名空间中。未指定在特定名称空间中声明的名称是直接在该名称空间中声明,还是在该名称空间内的内联名称空间中声明。
然后,当你说“库”时,这里只有一个库,那就是“标准库”。iostream是这个库的头文件。但这并不意味着头中的所有内容都在特定的名称空间中。
例如,cin和cout直接位于std命名空间中,但包含在<iostream>标头中。
https://stackoverflow.com/questions/42957970
复制相似问题