使用命名空间std;在头文件中
using namespace std; in header file
一些人声称using namespace std;
是不好的做法。另一些人则说,在合适的地方可以。但是每个人都同意把它放在头文件中是被禁止的。
亲爱的读者,谁能从Bjarne Stroustrup自己的网站上解释一下呢?
http://www.stroustrup.com/Programming/Graphics/std_lib_facilities.h他甚至没有把它放在你可能注意到的最上面,它在下面大约50行。
这是怎么回事?是恶意的黑客通过在他的网站上放坏代码来败坏他的名声吗?
你读了文件开头的注释了吗?
简单的"编程:c++的原理和实践"课程头在头几周使用。它提供了最常见的标准头文件(全局命名空间中的)和最小的异常/错误支持。
学生:请不要试图理解标题的细节。一切都会解释清楚的。这个标头的主要用途是你不需要一次理解所有的概念。修改后的4月25、2010:添加了simple_error()
这样做的目的是让您可以开始学习该语言,而不必第一天学习名称空间,也不必担心需要包含哪些标准头文件。
鉴于这是一个课程标题,我认为学生应该包括它,然后以这种方式使用大多数标准库。我很惊讶Stroustrup用这种方式教它(在我看来,这仍然是一种糟糕的做法),但这确实意味着他少了一点语法来解释给他的学生。我不认为任何非课程应用程序(或者更糟的是,库)应该包含它,所以它在某种程度上是可以接受的。
我仍然认为这是非常糟糕的风格,说标准的东西必须以std::
为前缀会更好。
首先,那是教学材料,因此远非相同。第二,那又怎样?每个人都会犯错误或维护遗留头文件。第三,仅仅因为你发明了一门语言,并不能使你永远掌握一切——尤其是当有一个标准委员会的时候。
相关文章:
- 命名空间中具有.h和.cpp文件的类
- 使用 Clang++ 有没有办法将文件作为命名空间等包含?
- Qt C++:不同文件中同一命名空间的多个Q_NAMESPACE
- 不同C++文件中未命名命名空间中的名称可以引用同一个命名事物吗?
- 使用命名空间在另一个".cpp"文件中定义
- 在命名空间中声明变量,在 main 中定义它,使其对所有其他文件可见
- 是否将命名空间范围文件本地 (.cpp) 常量放在匿名命名空间中
- 模板实现文件中的匿名命名空间
- C++-使用来自不同头文件、相同命名空间的枚举
- C++ 如何在 def 文件中指定命名空间
- 在实现文件中,我们应该更喜欢"using namespace"指令还是将实现包装在命名空间 { } 中?
- 在头文件中添加命名空间函数
- 在多个 cpp 文件中重用未命名的命名空间函数
- 使用匿名命名空间中的函数或另一个文件中的静态函数不应该出错吗?
- 跨命名空间的友元类和不同的.H 文件
- 我可以在应用程序之间更改 .proto 文件的命名空间吗?
- 试图将两个类放在同一命名空间中的单独文件中,但只有#1个#Class类作品
- C++中的头文件和命名空间
- 为什么主可执行文件和 dlopen 加载的共享库共享命名空间静态变量的一个副本?
- 包含所有命名空间 std 的文件