using namespace std;在头文件中

时间:2011-08-20 20:16:03

标签: c++ coding-style

有些人声称using namespace std;是不好的做法。其他人说这样就好了。但是每个人都同意将它放在头文件中是禁止的。

亲爱的读者,可以从Bjarne Stroustrup自己的网站上解释一下。

http://www.stroustrup.com/Programming/Graphics/std_lib_facilities.h

他甚至没有将它放在您可能注意到的顶部,大约50行。

这里发生了什么?是恶作剧黑客通过在他的网站上放置不良代码来诋毁BS吗?

3 个答案:

答案 0 :(得分:23)

您是否在文件开头阅读了评论?

  

简单的“编程:使用C ++的原理和实践”课程标题   在最初几周内使用 。它提供了最常见的   标准头文件(全局命名空间中的 )和最小的异常/错误   支持。

     

学生:请不要试图了解标题的详细信息   还没。一切都将被解释。此标头主要用于此目的   你不必一次理解每个概念。 4月修订   25,2010:simple_error()添加

这个想法是这样你可以开始使用该语言,而无需了解第1天的命名空间,也不必担心需要包含哪些标准标题。

答案 1 :(得分:3)

看到这是一个课程标题,我认为学生应该包含它,然后以这种方式使用大部分标准库。令我感到惊讶的是Stroustrup以这种方式教导它(在我看来,这仍然是一种不好的做法),但这确实意味着他只有一点点语法可以向他的学生解释。我认为任何非课程作业(或者更糟糕的是,图书馆)都不应该包含它,所以它可以说是可以接受的。

我仍然认为这种风格非常糟糕,并且说标准事物必须以std::为前缀本来会更好。

答案 2 :(得分:0)

首先,这是教材,因此远非相同。其次 - 那又怎样?每个人都会犯错误或维护遗留标题。第三,仅仅因为你发明了一种语言并不能使你永远掌握一切 - 特别是在有标准委员会时。