使用命名空间std后,为什么还要包含头文件<iostream>?

Manoj Bharadwaj

由于命名空间std已经具有包含函数定义的c ++库(如果我正确的话),那么为什么我们要在其顶部包含头文件?由于命名空间std包含c ++标准库,因此我看不出要单独包含它的声明的理由。

比尔·林奇

这样做时,#include <iostream>它将导致源文件中包含一组类和其他内容。对于iostream和大多数标准库头,它们将这些东西放在名为的名称空间中std

因此,的代码#include <iostream>如下所示:

namespace std { 
    class cin  { ... };
    class cout { ... };
    class cerr { ... };
    class clog { ... };
    ...
}

因此,此时,您可以编写如下程序:

#include <iostream>

int main() {
    std::cout << "hello\n";
    return 0;
}

现在,有些人觉得这std::cout太冗长了。因此,他们这样做:

#include <iostream>
using namespace std;

int main() {
    cout << "hello\n";
    return 0;
}

就个人而言,我建议不要这样做,如果您真的觉得这std::cout太冗长,则建议您使用较小的using语句。

#include <iostream>
using std::cout;

int main() {
    cout << "hello\n";
    return 0;
}

如果您想知道为什么我建议反对using namespace std,那么我将把您转发到关于stackoverflow的以下其他两个帖子:

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

错误:标识符“ cout”未定义。包含<iostream>并使用命名空间std;

来自分类Dev

使用iostream处理错误

来自分类Dev

iostream和命名空间std之间是什么关系?

来自分类Dev

为什么iostream无法复制?

来自分类Dev

为什么在包含<iostream>之后必须写std :: cin?

来自分类Dev

如何保证不包含iostream?

来自分类Dev

“ #include <iostream>”有什么作用?

来自分类Dev

iostream是否使用重载或模板?

来自分类Dev

包含iostream时为什么可以使用printf()?

来自分类Dev

错误:iostream.h由于包含cplex

来自分类Dev

无法在Android NDK中包含iostream

来自分类Dev

Xcode 11.1:找不到iostream'文件

来自分类Dev

vscode无法打开源文件“ iostream”

来自分类Dev

如何使用IOStream存储格式设置?

来自分类Dev

如何使用C ++配置gnuplot-iostream?

来自分类Dev

如何使用C ++配置gnuplot-iostream?

来自分类Dev

找不到头文件iostream Visual Studio 2010

来自分类Dev

如何避免在多个文件中重新包含<iostream>?

来自分类Dev

为什么C ++ iostream总是左手分配?

来自分类Dev

为什么C ++ iostream总是左手分配?

来自分类Dev

使用boost iostream将数组读写到压缩文件

来自分类Dev

从Objective-C头文件包含C ++头文件时,它具有编译错误,未找到iostream

来自分类Dev

C ++ / NetBeans / CygWin / Windows-<iostream>内部未解决的包含

来自分类Dev

包含 <iostream> 时出现“未定义引用”错误

来自分类Dev

为 Android 构建 OpenCV 4.0:不能包含 <iostream>?

来自分类Dev

调整C ++ std / boost iostream以提供对存储块的循环写入

来自分类Dev

为什么iostream在MCU上占用这么多闪存空间?

来自分类Dev

stdio.h和iostream有什么区别?

来自分类Dev

E447:在路径中找不到文件“ iostream”

Related 相关文章

  1. 1

    错误:标识符“ cout”未定义。包含<iostream>并使用命名空间std;

  2. 2

    使用iostream处理错误

  3. 3

    iostream和命名空间std之间是什么关系?

  4. 4

    为什么iostream无法复制?

  5. 5

    为什么在包含<iostream>之后必须写std :: cin?

  6. 6

    如何保证不包含iostream?

  7. 7

    “ #include <iostream>”有什么作用?

  8. 8

    iostream是否使用重载或模板?

  9. 9

    包含iostream时为什么可以使用printf()?

  10. 10

    错误:iostream.h由于包含cplex

  11. 11

    无法在Android NDK中包含iostream

  12. 12

    Xcode 11.1:找不到iostream'文件

  13. 13

    vscode无法打开源文件“ iostream”

  14. 14

    如何使用IOStream存储格式设置?

  15. 15

    如何使用C ++配置gnuplot-iostream?

  16. 16

    如何使用C ++配置gnuplot-iostream?

  17. 17

    找不到头文件iostream Visual Studio 2010

  18. 18

    如何避免在多个文件中重新包含<iostream>?

  19. 19

    为什么C ++ iostream总是左手分配?

  20. 20

    为什么C ++ iostream总是左手分配?

  21. 21

    使用boost iostream将数组读写到压缩文件

  22. 22

    从Objective-C头文件包含C ++头文件时,它具有编译错误,未找到iostream

  23. 23

    C ++ / NetBeans / CygWin / Windows-<iostream>内部未解决的包含

  24. 24

    包含 <iostream> 时出现“未定义引用”错误

  25. 25

    为 Android 构建 OpenCV 4.0:不能包含 <iostream>?

  26. 26

    调整C ++ std / boost iostream以提供对存储块的循环写入

  27. 27

    为什么iostream在MCU上占用这么多闪存空间?

  28. 28

    stdio.h和iostream有什么区别?

  29. 29

    E447:在路径中找不到文件“ iostream”

热门标签

归档