我的教授在大学时告诉我们的内容与我在 Stroustrup 的书中读到的内容有些混淆。
我们都知道 C++
header
基本上是 声明(在 file.h 中定义),它们可以包含例如 类的集合。它们非常有用,因为它们给了我们一个 很多功能存储在一个空间中命名空间是为了组织类、函数、 types (...) 在程序的一部分中没有定义类型。
当我必须创建一个项目时,我看不到这里的具体区别。
如果我必须(例如)编写一个程序来求解不同程度的方程,我会把我需要的类放在一个文件中。例如,我将在 equations.h
中放置所有这些东西:secondDeg 类、thirdDeg 类、fourthDeg 类等等。
那我为什么要使用命名空间?
答案(我猜)是:因为您可以为更好的组织命名(参见 std::cin)。但在这种情况下我应该
- 创建 equations.h(或其他)
- 例如创建一个名为
eq
的命名空间 - 将我的类放入命名空间
这真的有必要吗?我不能只使用一个头文件并将我所有的类放在里面吗?
最佳答案
Why should I use a namespace then?
命名空间可以包含多个 header ,例如 namespace std
包含来自 <vector>
的定义<list>
等
您可以定义自己的namespace
不污染全局 namespace 并避免冲突。最好将命名空间限制为您需要的最小值,因此 using namespace std;
通常会避免。
关于C++ 头文件和命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41131900/