这让我很困惑。所有的代码示例都涉及到namespaceA
和namespaceB
以及方法名称foo()
和bar()
,这并没有帮助,反而更加混乱。每个人解释命名空间的方式好像都在暗示,命名空间是面向对象编程(OOP)时代的遗物,当你无法说“类汽车提供燃油水平”的时候,只能换一种方式来访问。但现在我想要进行 C++ 编程,使用命名空间有何意义?不光是头文件已经够令人困惑的了,命名空间根本没有任何意义,无论是在它们如何工作还是为什么要使用它们方面。
假设我有一个围绕着Traffic
的项目。例如,你可以为 Car
及其组件、Driver
和 Passenger
以及道路 Road
建立类。
现在,该 Road
有 Car
,每个 Car
都有 Person
。这会是什么样子?
你会创建 Road
, Car
, Person
命名空间吗?main()
将使用命名空间 Road
来访问头文件中的内容吗?在命名空间 Road
中包括命名空间 Car
, 命名空间 Car
包括命名空间 Person
,通过这种方式,main()
可以访问 Person
中的方法吗?虽然大多数指南都是这样解释的,但我并不真正明白它与仅导入头文件相比的优点,这是否产生相同的效果?
或者你会把多个头文件放在同一个命名空间下,例如 namespace Traffic
拥有所有这些类?可以嵌套命名空间吗?
我了解 C#,直到现在查找信息时才知道它有命名空间,而且从未需要过它,在 Java、Python 和 Dart 中也没有用到。由于我试图自学 C++,所以现在陷入困境,在这里提出这个问题。到目前为止,我也从未在 C++ 中使用过它们,但我想以正确的方式学习。
::std
命名空间中。 - Eljay