C++ 使用名称空间std;在头文件中

C++ 使用名称空间std;在头文件中,c++,coding-style,C++,Coding Style,一些人声称使用名称空间std是不好的做法。也有人说在这个地方没关系。但是每个人都同意把它放在头文件中是不可能的 亲爱的读者,谁能从比亚恩·斯特罗斯特普自己的网站上解释这一点呢 他甚至没有把它放在上面你可能会注意到的地方,下面大约有50行 这是怎么回事?恶作剧的黑客是不是想通过在BS的网站上放置错误的代码来诋毁BS?首先,这是教材,因此与之相去甚远。第二,那又怎样?每个人都会犯错误或维护遗留标题。第三,仅仅因为你发明了一种语言并不能使你成为所有东西的永久主人——特别是当有一个标准委员会的时候。鉴

一些人声称
使用名称空间std是不好的做法。也有人说在这个地方没关系。但是每个人都同意把它放在头文件中是不可能的

亲爱的读者,谁能从比亚恩·斯特罗斯特普自己的网站上解释这一点呢

他甚至没有把它放在上面你可能会注意到的地方,下面大约有50行


这是怎么回事?恶作剧的黑客是不是想通过在BS的网站上放置错误的代码来诋毁BS?

首先,这是教材,因此与之相去甚远。第二,那又怎样?每个人都会犯错误或维护遗留标题。第三,仅仅因为你发明了一种语言并不能使你成为所有东西的永久主人——特别是当有一个标准委员会的时候。

鉴于这是一个课程标题,我认为学生应该包括它,然后以这种方式使用大部分标准库。我很惊讶Stroustrup这样教它(在我看来,这仍然是一个糟糕的做法),但这确实意味着他要向学生解释的语法少了一点。我不认为任何非课程应用程序(或者更糟糕的是,图书馆)都应该包含它,所以它在某种程度上是可以接受的


我仍然认为这是一种非常糟糕的风格,说标准的东西必须加上前缀
std::
会更好。

你看过文件开头的评论了吗

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

学生:请不要试图理解标题的细节 还没有。一切都会解释清楚的。此标题主要用于 你不必一下子理解每一个概念。四月修订 2010年12月25日:添加了简单错误()


这样一来,您就可以开始使用该语言,而不必在第1天学习名称空间,也不必担心需要为哪些内容包含哪些标准标题。

好吧,可能会减少50行,但就在他完成包含标题和使用其他名称空间之后。这是一项教育工作,使事情更难阅读。学生们越容易理解它。也许它只是一个示例,而不是产品代码?我只是胡乱猜测。当我还是个孩子的时候,我的老师告诉我做sqrt(-1)非常糟糕,但现在我每天都用它。问题的答案取决于您使用的环境。如果我写一个代码来做一个简单的工作,例如一些数学问题,我肯定会
使用名称空间std,否则我将编写类似于
std::sqrt
的代码。BS在一本教学手册中使用,所以它是可以的。- 1:C++是一种巨大的、巨大的语言。没有理由从一开始就让新手学生使用名称空间。首先要学习的重要内容是对象。在这个阶段,名称空间只是一个障碍。一旦他们掌握了基本知识,他们就可以被教导他们所使用的某些形式是不好的。即使忽略上下文(正如其他人所指出的),我也不确定我是否理解“如果Stroustrup做到了,那么它还不错”的逻辑。即使语言的主要设计者之一做了一些通常被认为是错误的事情,但这并不意味着它会突然变成一个好主意。名称空间不是语言最重要的方面。对象是。