我是 C++ 初学者,最近接触了 std 等命名空间。但是,如果像 cout 和 endl 这样的函数是在 iostream 头文件中定义的,为什么还要包含 std 命名空间呢?或者这些函数实际上是在 std 命名空间中定义的吗?如果是这样,那么为什么要包含 iostream 文件呢?
命名空间和 #include 指令是不同的东西:
当您包含标头(如 iostream)时,您是在告诉预处理器处理文件的内容,就好像这些内容已出现在包含出现的位置处的源程序中一样。
为什么要使用包含而不是直接将代码扔在那里?
From:
http://www.cplusplus.com/forum/articles/10627/
(1) 加快编译速度。随着您的程序的增长,您的
代码,如果所有内容都在一个文件中,那么所有内容都必须是
每次进行任何微小更改时都会完全重新编译。这可能不会
对于小程序来说似乎是一件大事(事实并非如此),但是当你
有一个合理大小的项目,编译时间可能需要几分钟
编译整个程序。你能想象必须等待吗
每次微小的改变之间间隔很长时间?
编译/等待8分钟/“哦糟糕,忘了分号”/编译/
等待8分钟/调试/编译/等待8分钟/等等
(2) 它让你的代码更有条理。如果你把概念分成
特定文件,更容易找到您要查找的代码
您想要进行修改(或者只是查看它以记住如何
使用它和/或它的工作原理)。
(3)它允许您将接口与实现分开。如果你
不明白这意味着什么,别担心,我们会看到它的实际效果
贯穿本文。
另一方面,命名空间允许您在某个范围内对类和函数进行分组。它们提供了一种方法来避免这些实体之间的名称冲突,而不会带来处理嵌套类的不便。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)